2011-01-11 2 views
10



При запуске Maven-Jetty-плагин, я запускаю следующую команду:Свободный размер кучи не увеличивается в Maven

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

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

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

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

+0

ли это дает OutOfMemoryError? Вы пытались использовать -XX: MaxPermSize = 1024m? freeMemory() показывает пространство для будущего распределения. И пермаментные объекты идут в Пермское пространство. Ты делаешь. – ssedano

+0

Если я пытаюсь -XX: MaxPermSize = 1024, ничего не меняется ... Я не могу проверить его сейчас на OutOfMemoryError ... Вы хотите сказать, что это пространство (для будущего распределения) будет увеличиваться в зависимости от потребностей приложения? – gennad

+0

maxMemory() показывает общий объем памяти. Вставить maxMemoryoutput пожалуйста – ssedano

ответ

16

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 
+0

Мне пришлось перечитать дважды, чтобы «получить», но потом решил все мои проблемы :-) Спасибо. Сэкономленное некоторое время я бы проиграл. –

2

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

Установить переменную ENV под названием MAVEN_OPTS с содержанием «-Xmx1024m -Xms512m»

+0

Вы имеете в виду mvn jetty: run -Xmx1024m -Xms512m? Он не работает. mvn jetty: run -DXmx1024m -DXms512m работает, но память такая же, как с MAVEN_OPTS – gennad

+0

извините, что я виноват только в том, что я думаю, что нужно установить переменную env – lweller

Смежные вопросы