Freie Heap-Größe erhöht sich nicht in Maven
-
09-10-2019 - |
Frage
Als ich maven-Anlegestelle-Plugin laufe, laufe ich nächsten Befehl:
mvn -DMAVEN_OPTS="-Xmx1024m -Xms512m" -Djetty.port=8080 jetty:run
aber wenn ich versuche, die Ausgabe freier Heap-Größe mit
Long heapFreeSize = Runtime.getRuntime().freeMemory();
Es ist immer gibt etwas über etwa 30000000.
Ich nehme an, es ist Größe in Bytes, so etwa 30 Megabyte.
Warum dann frei Heap-Speicher nicht erhöhen?
Lösung
MAVEN_OPTS
ist eine Umgebungsvariable, die von Maven und als die Befehlszeilenargumente für Forking Java-Prozesse gelesen wird. Kommandozeilenargumente steuern, wie die Java ausführbare Datei gestartet wird, z.B. Sachen wie Speichereinstellungen.
-D
wird für die Einstellung Java Systemeigenschaften verwendet, die etwas ganz anderes als Befehlszeilenargument ist. Java Systemeigenschaften können programmatisch zu lesen, zum Beispiel unter Verwendung System.getProperties ().
Fenster:
SET MAVEN_OPTS="-Xmx1024m -Xms512m"
mvn -Djetty.port=8080 jetty:run
Linux:
export MAVEN_OPTS="-Xmx1024m -Xms512m"
mvn -Djetty.port=8080 jetty:run
Andere Tipps
Ich denke, -DMAVEN_OPTS = „- Xmx1024m -Xms512m“ ist nicht korrekt Weise Speicher params hier angeben.
Legen Sie eine Umgebungsvariable namens MAVEN_OPTS mit Inhalt "-Xmx1024m -Xms512m"