10 Stimmen

Die freie Heap-Größe erhöht sich nicht im Maven

Wenn ich den maven-jetty-plugin ausführe, führe ich den nächsten Befehl aus:

mvn -DMAVEN_OPTS="-Xmx1024m -Xms512m" -Djetty.port=8080 jetty:run

aber wenn ich versuche, die freie Heap-Größe auszugeben mit

Long heapFreeSize = Runtime.getRuntime().freeMemory();

Es gibt immer etwas über etwa 30000000 aus.
Ich vermute, es ist die Größe in Byte, also etwa 30 Megabyte.
Warum erhöht sich dann der freie Heap-Speicher nicht?

17voto

mhaller Punkte 13902

MAVEN_OPTS ist eine Umgebungsvariable, die von Maven gelesen wird und als Befehlszeilenargumente für das Forken von Java-Prozessen verwendet wird. Befehlszeilenargumente steuern, wie das Java-Executable gestartet wird, z.B. Einstellungen wie Speicher.

-D wird verwendet, um Java-Systemeigenschaften festzulegen, was etwas ganz anderes als Befehlszeilenargumente ist. Java-Systemeigenschaften können programmgesteuert gelesen werden, z.B. durch Verwendung von System.getProperties().

Windows:

SET MAVEN_OPTS="-Xmx1024m -Xms512m"
mvn -Djetty.port=8080 jetty:run

Linux:

export MAVEN_OPTS="-Xmx1024m -Xms512m"
mvn -Djetty.port=8080 jetty:run

2voto

lweller Punkte 10763

Ich glaube, dass -DMAVEN_OPTS="-Xmx1024m -Xms512m" keine korrekte Möglichkeit ist, die Speicherparameter hier anzugeben.

Setzen Sie eine Umgebungsvariable namens MAVEN_OPTS mit dem Inhalt "-Xmx1024m -Xms512m"

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X