Question

J'ai un .JAR qui utilise apparemment trop de mémoire, et lève une exception « l'espace de Java » (ou quelque chose de similaire).

J'ai essayé de lancer le .JAR via le CMD comme ceci:

C:\MyFolder>javaw -jar MyJar.jar -Xms64m -Xmx128m

Cela ne résout pas le problème. même erreur. Maintenant, quand j'ai vérifié l'onglet Processus dans le Gestionnaire des tâches de Windows, j'ai remarqué que le processus de mon pot a beaucoup moins de mémoire que ce que j'ai demandé (même que l'exécution sans les paramètres).

Pourquoi est-il ignorer les paramètres?

En outre, je pense que l'exception est levée au moment le cours du processus d'utilisation de 100 Mo de mémoire. Est-il possible que le GC tente de libérer la mémoire et qui est ce qui cause le problème? Y at-il un paramètre que je peux définir pour le GC pour empêcher cela?

Merci, Malki:)

Était-ce utile?

La solution

La commande

javaw -jar MyJar.jar -Xms64m -Xmx128m

utilisera -Xms ... et -Xmx ... en tant que paramètres à la méthode "main (String [] args)".
Paramètres la machine virtuelle Java doit être transmis avant la partie jar:

javaw -Xms64m -Xmx128m -jar MyJar.jar

La raison peut être vu quand nous exécutons « java -version »:

Usage: java [-options] class [args...]
           (to execute a class)
   or  java [-options] -jar jarfile [args...]
           (to execute a jar file)

Où vos paramètres -Xms ... et -Xmx ... sont des options à la machine virtuelle Java.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top