Не могу запустить: недостаточно памяти с -Xmx30G - PullRequest
3 голосов
/ 16 ноября 2010

Я получаю сообщение об ошибке «Не удается запустить: недостаточно памяти», когда я запускаю свой код с «java -Xmx30G ExampleCode».

Эта ошибка не возникает, когда я не указываюРазмер виртуальной машины Java.Кто-нибудь знает, почему я получаю это сообщение об ошибке при установке размера виртуальной машины?Если -Xmx меньше 1G, то он запускается, если нет, то я получил упомянутое сообщение об ошибке.

Заранее спасибо за любую помощь!

И да, ОЗУ достаточно :) (72G доступно).

Кстати, JavaHome - это /opt/jre1.6.0_20

Ответы [ 4 ]

4 голосов
/ 16 ноября 2010

ОС может наложить ограничение на размер процесса.Например, в 32-разрядных окнах ограничение составляет ~ 2 ГБ, даже если на вашей машине установлено 4 ГБ ОЗУ.Проверьте настройки ОС или убедитесь, что вы используете JVM, где это разрешено (т. Е. Если вы работаете в 64-разрядной системе, поддерживающей процесс этого размера, обязательно запустите 64-разрядную JVM)

2 голосов
/ 16 ноября 2010

Вы, вероятно, используете 32-битную Java, см. http://www.oracle.com/technetwork/java/hotspotfaq-138619.html#gc_heap_32bit

1 голос
/ 16 ноября 2010

Для использования более 2 / 3Gb требуется 64-битная JVM (зависит от версии ОС).

1 голос
/ 16 ноября 2010

Убедитесь, что вы используете 64-битную JVM. Я думаю, что 32-разрядный предел памяти составляет около 4 ГБ памяти.

...