2016-06-17 4 views
1

Как описано во многих источниках, я пытаюсь использовать java -Xms512m из командной строки, чтобы установить максимальный размер кучи для java-машины до 512 Мб. Но что-то пойдет не так и командная строка показывает следующую
enter image description hereИзменение размера кучи java

И, как я проверил непосредственно из программы: long heapMaxSize = Runtime.getRuntime().maxMemory(); heapMaxSize равно 954728448, которая составляет около 1Gb.

+2

Ваше изображение огромно. Пожалуйста, подумайте о том, чтобы снять снимок экрана и загрузить меньшую версию. – erip

ответ

3

Этот параметр называется параметром VM и должен указываться при запуске вашей виртуальной машины (JVM).

Вы можете указать максимальный размер кучи, как вы запустите программу:

java -Xmx1024m -jar yourJar.jar 

Или же, вы можете установить переменную среды в системе JAVA_OPTS и JVM будет уважать ваши настройки, как она начинается:

JAVA_OPTS="-Xmx1024m" 

Что касается вашего второго вопроса, я бы назвал вас What are Runtime.getRuntime().totalMemory() and freeMemory()?, поскольку он уточняет, какие значения возвращают Runtime.getRuntime().maxMemory() и друзья.

+0

Или добавить это 'JAVA_OPTS', я думаю? – erip

+0

@erip Я считаю, что вы правы. Я также добавлю это. – SnakeDoc

+0

Я не уверен, что вы можете положить -Xmx сразу после -jar –

1
  • -Xmx<size>: Макс Размер Java Heap (молодое поколение + штатное поколение)
  • -Xms<size>: начальный размер Java Heap (молодое поколение + штатное поколение)
  • -Xmn<size>: Размер молодого поколения Heap пространство

проблема, с которой вы столкнулись, не связано с -Xms, это связано с тем, что ваша команда java является неполной, на самом деле вы должны предоставить банку с главным классом определенный в META-INF/MANIFEST.MF или FQN класса для запуска.

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