Размер свободной кучи в Maven не увеличивается - PullRequest
10 голосов
/ 11 января 2011



Когда я запускаю maven-jetty-plugin, я запускаю следующую команду:

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

но когда я пытаюсь вывести размер свободной кучи с помощью

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

Он всегда выводит что-то около 30000000.
Я предполагаю, что это размер в байтах, так что около 30 мегабайт.
Почему тогда свободная куча памяти не увеличилась?

Ответы [ 2 ]

17 голосов
/ 21 января 2011

MAVEN_OPTS - это переменная окружения, которая читается Maven и используется в качестве аргументов командной строки для разветвления процессов Java. Аргументы командной строки определяют способ запуска исполняемого файла Java, например, такие вещи, как настройки памяти.

-D используется для установки свойств системы Java, что совершенно отличается от аргументов командной строки. Свойства системы Java могут быть прочитаны программно, например, с помощью 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
2 голосов
/ 11 января 2011

Я думаю -DMAVEN_OPTS = "- Xmx1024m -Xms512m" - неправильный способ указать здесь параметры памяти.

Установить переменную env с именем MAVEN_OPTS с содержимым "-Xmx1024m -Xms512m"

...