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:)

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top