Не удалось зарезервировать достаточно места для кучи объектов для запуска JVM - PullRequest
21 голосов
/ 10 июля 2011

Просто столкнулся со странной проблемой. Когда я печатаю

java -version

я получил

Error occurred during initialization of VM
Could not reserve enough space for object heap
Could not create the Java virtual machine.

.

java -Xms64m -Xmx64m -version

Эта команда отлично работает

java version "1.6.0_24"
Java(TM) SE Runtime Environment (build 1.6.0_24-b07)
Java HotSpot(TM) Client VM (build 19.1-b02, mixed mode)

Если я изменяю xms, xmx на 128m, я снова получаю ошибку.

Используя команду top и free -m я могу видеть, что я получил более 192 МБ свободного места, так почему я все еще получаю эту ошибку?

Mem:    262144k total,    64760k used,   197384k free,        0k buffers
Swap:        0k total,        0k used,        0k free,        0k cached

Спасибо

Ответы [ 3 ]

14 голосов
/ 08 ноября 2012

У меня была такая же проблема при использовании 32-битной версии Java в 64-битной среде.При использовании 64 Java в 64 ОС это было нормально.

11 голосов
/ 10 июля 2011

Похоже, что машина, на которой вы пытаетесь запустить это, имеет только 256 МБ памяти.

Возможно, JVM пытается выделить большой непрерывный блок из 64 МБ памяти.Свободные 192 МБ могут быть фрагментированы на более мелкие куски, так что нет свободного непрерывного блока из 64 МБ, который можно выделить.

Попробуйте запустить программу Java с меньшим размером кучи, например:

java -Xms16m ...
5 голосов
/ 10 июля 2011

Согласно этому сообщению это сообщение об ошибке означает:

Размер кучи больше физической памяти вашего компьютера.

Редактировать: Куча не единственная память, которая зарезервирована, я полагаю. По крайней мере, есть другие настройки JVM, такие как PermGenSpace, которые запрашивают память. С размером кучи 128M и PermGenSpace 64M вы уже заполняете доступное пространство.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...