Свободный размер кучи не увеличивается в Maven



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

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

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

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

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

Почему тогда свободная память кучи не увеличилась?

Ответ 1

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

-D используется для установки Java System Properties, что является чем-то совершенно иным, чем аргументы командной строки. Свойства Java-системы можно читать программно, например. используя System.getProperties().

Окна:

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

Linux:

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

Ответ 2

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

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