"Ошибка произошла во время инициализации VM; Не удалось зарезервировать достаточно места для кучи объектов" с использованием -Xmx3G

Прежде всего, у меня коробка с 8 Гб оперативной памяти, поэтому я сомневаюсь, что проблема в общей памяти. Это приложение отлично работает на машинах с 6 Гб или меньше.

Я пытаюсь зарезервировать 3 Гб пространства с помощью параметра -Xmx3G в разделе "VM Arguments" в Run Configurations в Eclipse.

Каждый раз, когда я пытаюсь зарезервировать более 1500мб, я получаю эту ошибку: "Error occurred during initialization of VM; Could not reserve enough space for object heap" при использовании -Xmx3G.

Что здесь происходит?

Комментарии к вопросу (4)

Может ли быть так, что вы используете 32-битную jvm на этой машине?

Комментарии (8)

Вот как это исправить: К Старт-и GT;Панель управления GT;в системе>дополнительно(вкладка)->переменные-&ГТ среды;система

Variables->New:
Variable name: _JAVA_OPTIONS   
Variable value: -Xmx512M

Variable name: Path  
Variable value: ;C:\Program Files\Java\jre6\bin;F:\JDK\bin;  

Изменить это в ваш пути.

Комментарии (2)

На самом деле это не проблема, специфичная для Eclipse; это общая проблема. Java-on-Windows. Это связано с тем, как JVM выделяет память в Windows. Windows; она настаивает на выделении непрерывного куска памяти, который часто Windows не может этого обеспечить, даже если есть достаточно отдельных кусков, чтобы удовлетворить запрос на выделение. Существуют утилиты, которые пытаются помочь Windows "дефрагментировать" память, что, теоретически, могло бы помочь в этой ситуации; но я не пробовал их всерьез, поэтому не могу сказать. их всерьез, поэтому не могу сказать об их эффективности. Одна вещь, которую я иногда слышал, может помочь - перезагрузить Windows и, прежде чем запускать другие приложения, запустить Java-приложение, которому требуется большой кусок памяти. Если вам повезет, Windows не будет фрагментировать свое пространство памяти, и Java получит непрерывный блок, который запрашивает.

Где-то в Интернете есть более технические объяснения и анализ этой проблемы, но у меня нет под рукой ссылок.

Однако я нашел вот это, что выглядит полезным: https://stackoverflow.com/a/497757/639520.

Комментарии (1)

Первая среда JRE, на 32 бита может'т использовать больше ~1,5 Гб оперативной памяти. Так что если вы хотите больше, использовать 64бит версию JRE.

Во-вторых, когда новый JVM начинает, эта сумма значения-Xmx свойство всех JVM, которая работает, и проверьте, достаточно ли памяти в системе остаются работать на собственных значение-Xmx, если не достаточно, то происходит ошибка.

Комментарии (0)

Я использую Liferay портал с сервера Tomcat с интегрированной среде разработки Eclipse. Я застрял с этой же ошибкой на кнопку на сервере запустить. Двойной щелчок на сервер из Eclipse. он откроет сервер обзор страницы. Обновлено аргументов памяти из -Xmx1024m -начала XX:MaxPermSize=256Мб для -Xmx512m -начала XX:MaxPermSize=256Мб. Потом он работал на меня.

Комментарии (1)

Убедитесь, что в Eclipse действительно запущена та же JVM, о которой вы думаете. Если вы когда-либо использовали java в своем веб-браузере, у вас, скорее всего, тоже есть 32-битная версия, которая может иметь приоритет, если она была установлена или обновлена в последнее время.

Чтобы быть абсолютно уверенным, я рекомендую добавить эти две строки в файл eclipse.ini в самом верху:

-vm 
C:/Java/jdk1.6.0_27/bin

...где на моей машине C:/Java/jdk1.6.0_27/bin, где находится JVM, которая, как я знаю, является 64-битной. Убедитесь, что папка bin находится там.

(В качестве бонуса, на Windows 7 это также позволяет вам "закрепить вкладку", поэтому мне пришлось сделать это для собственного использования).

Комментарии (5)

Это вопрос размера кучи. Редактировать .летучая мышь (пакетный файл). Это может быть показывает размер кучи 1024. Измените его на 512, то она должна работать.

Комментарии (0)

Я также имел такую же проблему, а с помощью Eclipse, которая была 32-разрядной и JVM используется именно 64 бит. Когда я распределила Eclipse для 32 разрядной JVM затем он работал

Комментарии (0)

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

Java HotSpot(TM) Client VM warning: ignoring option PermSize=32M; support was removed in 8.0
Java HotSpot(TM) Client VM warning: ignoring option MaxPermSize=128M; support was removed in 8.0

В моей случае, программное обеспечение не поддерживает Java 8 еще(сценарий, используя старые аргументы JVM), но я имел в Java 8 по умолчанию.

Комментарии (0)

Одна из причин этой проблемы является отсутствие памяти, доступной для Tomcat, чтобы начать. Попробуйте удалить ненужные запущенные программы в Windows и перезапустить Eclipse и Tomcat.

Комментарии (0)