Java-Heapspeicher Xmx Xms-Parameter werden ignoriert

7

Ich habe eine .JAR, die anscheinend zu viel Speicher verbraucht und eine Ausnahme "Java Heap Space" (oder etwas Ähnliches) auslöst.

Also habe ich versucht, die .JAR wie folgt über die CMD laufen zu lassen:

%Vor%

Das hat das Problem nicht gelöst. Derselbe Fehler. Jetzt, als ich die Registerkarte "Prozesse" im Windows-Task-Manager überprüfte, bemerkte ich, dass der Prozess in meinem Jar viel weniger Speicher hatte als das, was ich verlangte (dasselbe wie das Ausführen ohne die Parameter).

Warum ignoriert es die Parameter?

Außerdem denke ich, dass die Ausnahme um die Zeit verschoben wird, wenn der Prozess 100 MB Arbeitsspeicher erreicht. Ist es möglich, dass der GC versucht, den Speicher freizugeben, und das verursacht das Problem? Gibt es einen Parameter, den ich für den GC einstellen kann, um das zu verhindern?

Danke, Malki:)

    
Malki 22.06.2010, 13:40
quelle

1 Antwort

23

Der Befehl

%Vor%

verwendet -Xms ... und -Xmx ... als Parameter für die Methode "main (String [] args)".
Parameter bis Die JVM muss vor dem -jar-Teil übergeben werden:

%Vor%

Der Grund dafür kann gesehen werden, wenn wir "java -version" ausführen:

%Vor%

Wo Ihre Parameter -Xms ... und -Xmx ... Optionen für die JVM sind.

    
Philipp 22.06.2010, 13:43
quelle