Java Не удалось зарезервировать достаточно места для ошибки кучи объекта

У меня Java7 работает на 32-битной Windows и 4 ГБ оперативной памяти, но:

java -Xmx4G -Xms4G -jar Minecraft.jar 
java -Xmx3G -Xms3G -jar Minecraft.jar 
java -Xmx2G -Xms2G -jar Minecraft.jar

... все еще не работает. Ошибка:

Ошибка при инициализации виртуальной машины
    Не удалось зарезервировать достаточно места для кучи объектов
    Ошибка: не удалось создать виртуальную машину Java.
    Ошибка: произошло фатальное исключение. Программа будет закрыта.

java -Xmx1G -Xms1G -jar Minecraft.jar работает. Почему?

Ответ 1

Перейдите к StartControl PanelSystemAdvanced system settingsadvanced(tab)Environment VariablesSystem VariablesNew:

Variable name: _JAVA_OPTIONS
Variable value: -Xmx512M

Ответ 2

Если вы перейдете через эту ссылку IBM на java, он говорит, что на 32-битных окнах рекомендуемый размер кучи составляет 1,5 ГБ, а максимальный размер кучи составляет 1,8 ГБ. Таким образом, ваш jvm не инициализируется для -Xmx2G и выше.

Также, если вы переходите через этот ответ SO, очевидно, что привязки DLL являются проблемой для изменения резервирования памяти, что не является тривиальной задачей. Следовательно, можно рекомендовать, что вы идете на 64-битную Windows и 64-битную JVM. в то время как он будет пережевывать больше оперативной памяти, у вас будет гораздо более смежное виртуальное адресное пространство.

Ответ 4

Это происходило для меня, и это такое легкое решение.

  • вы должны убедиться, что у вас есть правильный java для вашей системы, такой как 32-битный или 64-битный.
  • если вы установили правильное программное обеспечение, и оно все еще встречается, чем goto

    control panelsystemadvanced system settings для Windows 8 или

    control panelsystem and securitysystemadvanced system settings для Windows 10.

  • вы должны перейти к {расширенной вкладке}, а затем нажать {Переменные среды}.
  • вы нажмете на {New} под <system variables>
  • вы создадите новую переменную. Имя переменной: _JAVA_OPTIONS Значение переменной: -Xmx512M

По крайней мере, это то, что сработало для меня.

Ответ 5

4 ГБ RAM не означает, что вы можете использовать все это для Java-процесса. Для системных процессов требуется много оперативной памяти. Не переходите выше 2 ГБ или это будет проблемой.

Перед запуском jvm просто проверьте, сколько оперативной памяти доступно, а затем установите соответствующую память.

Ответ 6

чтобы убедиться, что он запускает 64-битную версию java, выполните следующие действия:

"c:\Program Files\Java\jre7\bin\java.exe" -Xmx1536M -Xms1536M -XX: MaxPermSize = 256M -jar forge-1.6.4-9.11.1.965-universal.jar

взгляните на версию jre, которую вы установили на всякий случай. x64 должен находиться в программных файлах, а x32 - в Program Files (x86)

Ответ 7

это то, что сработало для меня (да, у меня была такая же проблема) были что-то вроде java -Xmx3G -Xms3G put java -Xmx1024M поэтому run.bat должен выглядеть так: java -Xmx1024M -jar craftbukkit.jar -o false PAUSE

Ответ 8

Дважды щелкните сервер Liferay CE → add -XX: MaxHeapSize = 512m в память args → Запустите сервер! Наслаждайтесь...

Это работает для меня!