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 работает. Зачем?

9 ответов

Идти к StartControl PanelSystemAdvanced system settingsadvanced(tab)Environment VariablesSystem VariablesNew:

Variable name: _JAVA_OPTIONS
Variable value: -Xmx512M

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

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

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

  1. Вы должны убедиться, что у вас есть правильный Java для вашей системы, такой как 32-битная или 64-битная.
  2. если вы установили правильное программное обеспечение, и это все еще происходит, чем перейти

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

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

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

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

У меня была эта проблема. Я решил это с загрузкой 64x Java. Вот ссылка: http://javadl.sun.com/webapps/download/AutoDL?BundleId=87443

Чтобы убедиться, что он работает на 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)

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

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

Дважды щелкните Liferay CE Server -> добавить -XX:MaxHeapSize=512m в Аргументы памяти -> Запустить сервер! Наслаждаться...

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

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

Это старая тема. Но те, кто использует стек, такой как Bitnami WildFly 13, должны знать, что установка стека имеет собственный механизм Java в\Bitnami\wildfly-13.0.0-1\java. В Windows установка использует собственный движок стека Java для конфигураций по умолчанию и запускает Java с параметром -client, а не -server, даже если в системе установлены другие движки Java. Вам нужно изменитьstandalone.conf.batчтобы явно указать путь к Java и добавить параметр -server вместе с желаемым распределением памяти. Пример:

      set "JAVA_HOME=C:\Program Files\Java\jdk1.8.0_311”
set "JAVA_OPTS=-server -Xms2048M -Xmx4096M"
:JAVA_OPTS_SET
rem set "JAVA_HOME=C:\opt\jdk1.6.0_23\bin\java"

Надеюсь, это поможет.

Другие вопросы по тегам