Я получаю следующее исключение несколько раз каждый раз, когда пытаюсь запустить программу.
Произошла ошибка при инициализации ВМ
Не удалось зарезервировать достаточно места для кучи объектов
Не удалось создать виртуальную машину Java.
Я пытался увеличить свою виртуальную память (размер страницы) и объем оперативной памяти, но безрезультатно.
Как я могу устранить эту ошибку?
Ответы:
Запустите JVM с
-XX:MaxHeapSize=512m
(или любым большим числом, как вам нужно) (или-Xmx512m
для краткости)источник
Это также может быть вызвано установкой чего-то слишком большого в 32-разрядной версии HotSpot vm, например:
где это может / будет работать:
источник
вот как это исправить:
Перейдите в Пуск-> Панель управления-> Система-> Дополнительно (вкладка) -> Переменные среды-> Система
Переменные-> Новый: Имя переменной:
_JAVA_OPTIONS
Значение-Xmx512M
переменной: ИмяPath
переменной: Значение переменной:
%PATH%;C:\Program Files\Java\jre6\bin;F:\JDK\bin;
Измените это на свой подходящий путь.
источник
Я столкнулся с этим при использовании javac, и он, похоже, не учитывает параметры командной строки,
так что решение здесь так установить _JAVA_OPTIONS
И это хорошо компилируется.
Это происходит со мной на машинах с большим количеством оперативной памяти, но с меньшим объемом памяти. Java решает выделить большую кучу, потому что обнаруживает оперативную память в машине, но ей не разрешено выделять ее из-за ограничений.
источник
32-битная Java требует непрерывного свободного места в памяти для запуска. Если вы укажете большой размер кучи, свободного места в памяти может быть не так много, даже если у вас будет гораздо больше свободного места, чем необходимо.
Установка 64-битной версии Java помогает в этих случаях, непрерывные требования к памяти относятся только к 32-битной Java.
источник
В сочетании с -Xmx512M используйте -d64, чтобы убедиться, что вы используете 64-битную виртуальную машину. На 64-битной машине я точно думал, что использую 64-битную виртуальную машину, но нет. После установки 64-битной Java работает опция -d64, а -Xmx позволяет значительно увеличить объем памяти.
источник
Я получил ту же ошибку и решил ее, настроив ее в файле run.conf.bat
Запустите JVM с настройкой run.conf.bat в Jboss5x
Если свободная память недоступна, поскольку вы передаете оператор, внесите изменения в файл run.conf.bat
источник
Я знаю, что здесь уже есть много ответов, но ни один из них не помог мне. В конце концов я открыл файл
/etc/elasticsearch/jvm.options
и изменил:в
Это решило это для меня. Надеюсь, это поможет кому-то еще здесь.
источник
У меня были похожие проблемы. Я установил 32-битную версию Java на 64-битной машине.
Удалив эту версию и установив 64-битную версию Java. Я был в состоянии решить проблему.
источник
Предположим, ваш класс вызывается
Test
в пакетеmypackage
. Запустите ваш код так:Это зарезервирует 1024 МБ кучи для вашего кода. Если вы хотите 512 МБ, вы можете использовать:
Используйте немного м
1024m
,512m
и т. Д.источник
Иногда эта ошибка указывает на то, что физическая память и своп на сервере фактически используются полностью!
Недавно я видел эту проблему на сервере под управлением RedHat Enterprise Linux 5.7 с 48 ГБ оперативной памяти. Я обнаружил, что даже просто работает
вызвал ту же ошибку, которая установила, что проблема не была характерна для моего приложения.
Бег
сообщили, что значения MemFree и SwapFree значительно ниже 1% значений MemTotal и SwapTotal, соответственно:
Остановка нескольких запущенных приложений на машине несколько увеличила объем свободной памяти:
В этот момент новый экземпляр Java запустится нормально, и я смог запустить свое приложение.
(Очевидно, для меня это было лишь временное решение; у меня все еще есть нерешенная задача - более тщательно изучить процессы, запущенные на этой машине, чтобы выяснить, можно ли что-то сделать, чтобы снизить номинальные уровни использования памяти, без приходится прибегать к остановке приложений.)
источник
java -version
не удалось, хотя top показал некоторые бесплатные еще: | (также сказал, что Ошибка произошла во время инициализации ВМ. Иногда не удается зарезервировать достаточно места для массива маркировки карт). Исправление, казалось, было для запуска top, поиска, какие процессы использовали больше всего оперативной памяти (столбец VIRT), уничтожения их [postgres, appdynamics for me]: |Ошибка :
Для ошибки "ошибка произошла во время инициализации vm, не мог зарезервировать достаточно места для кучи объекта jboss"
Основная причина :
Неправильное / недостаточное выделение памяти для нашей JVM, как указано ниже.
например, JAVA_OPTS = "- Xms1303m -Xmx1303m -XX: MaxPermSize = 256m" в jboss-eap-6.2 \ bin \ standalone.conf или "JAVA_OPTS = -Xms1G -Xmx1G -XX: MaxPermSize = 256M" в jboss-e \ standalone.conf.bat, который является ничем иным, как параметрами пула выделения памяти JVM.
Разрешение :
Обычно его не рекомендуется иметь одинаковый размер для мин и макс.
Если вы запускаете свое приложение из Eclipse,
источник
java -Xgcprio:throughput -Xmx:64m -Xms:64m myApp
»Я недавно столкнулся с этой проблемой. У меня есть 3 Java-приложения, которые начинаются с кучи размером 1024 м или 1280 м. Java ищет доступное пространство в разделе подкачки, и, если недостаточно памяти, jvm завершает работу.
Чтобы решить эту проблему, мне пришлось закрыть несколько программ, у которых было выделено большое количество виртуальной памяти.
Я работал на x86-64 Linux с 64-разрядной JVM.
источник
У меня было правильное количество настроек памяти, но для меня это было использование 64-битного Intellij с 32-битной JVM. Когда я перешел на 64-битную виртуальную машину, ошибка исчезла.
источник
Если у вас достаточно свободной памяти и вы правильно настроили аргументы JVM, у вас может возникнуть проблема фрагментации памяти. Проверьте максимальный объем памяти Java в Windows XP .
источник
Если вы используете 32-битную JVM, измените размер кучи на меньший, вероятно, это поможет. Вы можете сделать это, передав аргументы в java напрямую или через переменные окружения, такие как:
Для 64-битной JVM больший размер кучи, например
-Xms512M -Xmx1536M
должен работать.Запустите
java -version
илиjava -d32
,java--d64
чтобы Java7 проверила, какую версию вы используете.источник
В любом случае, вот как это исправить: Перейдите в Пуск-> Панель управления-> Система-> Дополнительно (вкладка) -> Переменные среды-> Системные переменные-> Новое: Имя переменной: _JAVA_OPTIONS Значение переменной: -Xmx512M
ИЛИ
Измените вызов муравья, как показано ниже.
Это сработало для меня.
источник
Произошла ошибка при инициализации виртуальной машины. Не удалось зарезервировать достаточно места для кучи объектов размером 1572864 КБ.
Я изменил значение памяти в файле settings.grade 1536 на 512, и это помогло
источник
Перейдите в Пуск-> Панель управления-> Система-> Дополнительно (вкладка) -> Переменные среды-> Системные переменные-> Создать:
источник
Если вы запускаете Java-программу: - запустите вашу программу в терминале, используя правильную команду для Linux, это будет 'java -jar myprogram.jar' и добавьте -Xms256m -Xmx512m, например: 'java -jar myprogram.jar Xms256m -Xmx512m '
Если вы используете скрипт .sh (linux, mac?) Или .bat (windows), откройте сценарий и найдите параметры java, если они есть, и увеличьте объем памяти.
Если все вышеперечисленное не работает, проверьте ваши процессы (ctrl + alt + delete в windows) (ps aux в linux / mac) и убейте процессы, которые используют много памяти и не нужны вашей операционной системе! => Попробуйте перезапустить вашу программу.
источник
В CASSANDRA_HOME / bin / cassandra.bat вы найдете следующую конфигурацию
Вы можете уменьшить 2G до некоторого меньшего числа, например, 1G или даже меньше, и это должно работать.
То же самое, если вы работаете на Unix Box, измените в файле .sh соответствующим образом.
источник
Я получил ту же ошибку, и она была устранена, когда я удалил временные файлы, используя% temp% и перезапустив Eclipse.
источник
Иногда это относится как
Если вы установите его на:
Он должен работать.
источник
Заменить
-Xmx2G
с-Xms512M
или любой больший размер памяти в cassandra.bat файл в каталоге Cassandra бен.источник
Откройте файл gradle.properties в папке Android.
Заменить эту строку:
с участием:
Объяснение: Максимальный лимит из документа Gradle:
Если в запрашиваемой среде сборки не указан максимальный размер кучи, демон будет использовать до 512 МБ кучи.
источник
Нет необходимости делать что-либо просто в файле POM, как показано ниже
источник