espace de Java paramètres Xmx XMS ignorés
-
29-09-2019 - |
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:)
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.