Java Heap-Speicher Xmx Xms Parameter ignoriert
-
29-09-2019 - |
Frage
Ich habe einen .JAR dass offenbar verbraucht zu viel Speicher, und löst eine Ausnahme „Java Heap-Speicher“ (oder so ähnlich).
versucht, damit ich die .JAR über das CMD wie folgt ausgeführt werden:
C:\MyFolder>javaw -jar MyJar.jar -Xms64m -Xmx128m
Das ist nicht das Problem lösen hat. Gleiche Fehler. Wenn ich nun auf die Registerkarte Prozesse im Windows Task-Manager überprüft, bemerkte ich, dass der Prozess der mein Glas viel weniger Speicher als das, was ich gefragt (das gleiche wie es ohne die Parameter ausgeführt wird).
Warum ist es, die Parameter zu ignorieren?
Außerdem glaube ich, die Ausnahme in der Zeit geworfen wird der Prozess erreicht die Speichernutzung 100MB. Ist es möglich, dass der GC versucht, den Speicher freizugeben und das ist, was das Problem verursacht? Gibt es einen Parameter I für die GC einstellen kann, das zu verhindern?
Danke, Malki:)
Lösung
Der Befehl
javaw -jar MyJar.jar -Xms64m -Xmx128m
wird verwenden -Xms ... und -Xmx ... als Parameter an dem "main (String [] args)" Methode.
Parameter die JVM muss vor dem -jar Teil übergeben werden:
javaw -Xms64m -Xmx128m -jar MyJar.jar
Der Grund dafür zu sehen, wenn wir ausführen „java -version“:
Usage: java [-options] class [args...]
(to execute a class)
or java [-options] -jar jarfile [args...]
(to execute a jar file)
Wenn Sie Ihre Parameter -Xms ... und -Xmx ... sind Optionen für die JVM.