Ошибка Eclipse: «Не удалось создать виртуальную машину Java»

211

Я получаю это сообщение об ошибке при запуске Eclipse Helios в Windows 7:

Не удалось создать виртуальную машину Java

Введите описание изображения здесь

Мой eclipse.ini выглядит следующим образом:

-startup
plugins/org.eclipse.equinox.launcher_1.1.0.v20100507.jar
-vm
P:\Programs\jdk1.6\bin
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.0.v20100503
-product
org.eclipse.epp.package.jee.product
--launcher.defaultAction
openFile
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
512m
--launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms120m
-Xmn100m
-Xmx1024m

Насколько я могу судить, мой JAVA_HOME правильно настроен. Как я могу это исправить?

Вещи, которые я пробовал до сих пор:

  1. Добавление полного пути к javaw.exe -vm P:\Programs\jdk1.6\bin\\bin\javaw.exe
  2. Удаление -vmопции в целом
  3. Удаление --launcher.XXMaxPermSizeустраняет проблему, но вызывает ошибки permgen
  4. Удаление значения 512из --launcher.XXMaxPermSizeустраняет проблему, но это приводит к ошибкам PermGen
  5. Снижение -Xmxк 512mтакже устраняет проблему.

Почему я не могу использовать «1024m» для «-Xmx» и «--launcher.XXMaxPermSize»?

Маро
источник
18
Это означает, что jvm не может выделить необходимое пространство памяти (1024 + 512) на вашем компьютере.
Кейн
Просто чтобы подтвердить, я правильно понимаю. JVM выделит объем памяти, указанный в (XXMaxPermSize + Xmx)
Maro
2
Он не сразу создает память с максимальным размером кучи (указанным -Xmx) при запуске vm. Но он должен убедиться, что у него есть возможность создать максимальный размер кучи во время выполнения при запуске vm. Если нет, то vm не может быть создан.
Кейн
Я понятия не имею, почему, но на моей машине Eclipse имеет эту проблему, только когда работает Dragon NaturallySpeaking. Решение RonQi сработало для меня.
ограбить
@rob: Это, вероятно, потому что Дракон использует много памяти. Причиной этой проблемы является то, что JVM не может выделить достаточно памяти.
Стейн де Витт

Ответы:

80

Попробуйте удалить -vm P:\Programs\jdk1.6\binстроки.


Также общая рекомендация: ставить -Dosgi.requiredJavaVersion=1.6, а не 1.5.

Мэтт Болл
источник
52
в eclipse.ini изменение сокращения -Xmx до 512m с 1024 решило проблему для меня. Система имела 1 ГБ ОЗУ.
Декстер
3
@dexter, спасибо, это сработало для меня, уменьшив Xmx
danisupr4
для macos eclipse-2020 добавьте: "- vm" "/Library/Java/JavaVirtualMachines/jdk1.8.0_172.jdk/Contents/Home/bin/java" ниже "--launcher.appendVmargs" в eclipse.ini.
Кларк Ю
283

1. Откройте eclipse.iniфайл из папки eclipse, см. Рисунок ниже.

eclipse.ini

2. Откройте eclipse.iniв Notepadлюбом другом text-editorприложении, найдите строку -Xmx256m(или -Xmx1024m). Теперь измените значение по умолчанию 256m(или 1024m) на 512m. Вам также необходимо указать точную версию Java, установленную на Java (1.6 или 1.7 или другую).

максимальный размер

Как это:

-Xmx512m
-Dosgi.requiredJavaVersion=1.6

ИЛИ

-Xmx512m
-Dosgi.requiredJavaVersion=1.7

ИЛИ

-Xmx512m
-Dosgi.requiredJavaVersion=1.8

Тогда это хорошо работает для меня.

Ахиль Джайн
источник
8
Это будет работать только в том случае, если в проблеме недостаточно памяти и вы уменьшите значения в файле eclipse.ini. Их повышение только сделает эту проблему более вероятной.
Стейн де Витт
2
Спасибо, я увеличил это значение, и оно работало нормально, я думаю, это произошло потому, что я обновил JDK.
Первез Алам
1
Это на самом деле работало и для меня - NB: ewclipse просто перестал работать - у меня есть -Xmx1024m, повернулся Xmx512mи работал. Видимо не хватило памяти было (?)
Mr_and_Mrs_D
В моем случае это не работало при изменении значения на 512 с 1024, но когда я снова изменил его на предыдущее значение, т.е. 1024, это сработало.
Таран Лаял
1
Вау .. Для Eclipse Mars я изменил -Xmx1024m на -Xmx512m, и это сработало!
Умеш Патил
111

Попробуй добавить

-vm
D:\Java\jdk1.6.0_29\bin\javaw.exe

К вашему сведению: см. Sunblog

Для тех, у кого могут быть проблемы с Java 7, согласно Eclipse Wiki - eclipse.ini vm_value (пример windows)

Это может не работать на всех системах. Если во время запуска затмения вы столкнулись с ошибкой «Java была запущена, но возвращен код выхода = 1», измените аргумент -vm так, чтобы он указывал на jvm.dll.

например

-vm
C:\Program Files\Java\jre7\bin\client\jvm.dll

Также обратите внимание, что

Параметр -vm должен присутствовать перед параметром -vmargs, поскольку все, что после -vmargs, передается непосредственно в JVM

RonQi
источник
Это прекрасно работает, но я предпочитаю использовать -vm C: \ Program Files (x86) \ Java \ jre6 \ bin \ javaw.exe, так как путь JRE, скорее всего, останется стабильным, особенно если вы совместно используете одну установку Eclipse через несколько машин / виртуальных машин.
ограбить
у меня это получилось, но во время загрузки затмение зависает на org.eclipse.debug.core
Рахул Раздан
5
+1 Мне не хватало заказа. Все остальные места в сети говорят об аргументе -vm, но не говорят, что это должно произойти до -vmargs
demongolem
Я столкнулся с той же проблемой при установке Android SDK с Eclipse, и это исправило это. Спасибо !
codingscientist
Для записи я использую Windows 7 Home Premium и Server JVM 1.8.0_05, второй метод, указав на dll, работал для меня, первый метод - нет.
Ironluca
26

Я знаю, что это довольно старое время, но у меня только что возникла та же проблема, и проблема была в том, что я выделял много памяти для затмения, которое она не могла достать. Так что откройте eclipse.ini и уменьшите объем выделяемой памяти, -Xmx XXMaxPermSizeя изменил свой на -Xmx512mиXXMaxPermSize256m

Popeye
источник
Это на 32-битной машине? Потому что я считаю, что существует ограничение на количество памяти, которое вы можете использовать в 32-битных окнах
Maro
@ Маро Да, это так. Глядя на обновление до 64 бит.
Попай
1
Работал у меня, заменил 768м на 512м по параметру -Xmx.
Тартак
Я на 64-битной машине с 8 ГБ памяти, но все еще использую -Xmx = 768m в сочетании с -XX: PermSize = 256m и -XX: MaxPermSize = 512m оказалось слишком много. Это 32-битная Java, поэтому она может «использовать» только 4 ГБ, но на практике ее максимальная производительность намного ниже. Я ожидаю, что для начала потребуется 1024 м и максимум 1280 м ...
Stijn de Witt
Спасибо, я уверен, что я изменил его на 1024 несколько месяцев назад, чтобы обойти проблему. Реальный ответ на этот вопрос - перейти на Android Studio, это намного приятнее. Я вернулся в Eclipse только потому, что не перенес одно из своих старых приложений и мне нужно было что-то сделать.
Райан Хейтнер
18
  1. Откройте eclipse.iniфайл из папки Eclipse.

  2. Он имеет некоторые дополнительные настройки. Найдите строку –launcher.XXMaxPermSize. Теперь удалите значение по умолчанию 256m и сохраните его.

Furqi
источник
18

Я удалил eclipse.ini . Я столкнулся с этой проблемой, и удаление файла INI решило ее.

Monnster
источник
12
  1. Откройте папку с Eclipse.exe и найдите файл eclipse.ini
  2. Замените -vmargs текущим реальным путем к javaw.exe: * -vm «c: \ Program Files \ Java \ jdk1.7.0_07 \ bin \ javaw.exe» *

    -startup
    plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar
    --launcher.library
    plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.200.v20120522-1813
    -product
    com.android.ide.eclipse.adt.package.product
    --launcher.XXMaxPermSize
    256M
    -showsplash
    com.android.ide.eclipse.adt.package.product
    --launcher.XXMaxPermSize
    256m
    --launcher.defaultAction
    openFile
    **-vm “c:\Program Files\Java\jdk1.7.0_07\bin\javaw.exe”** 
    -Dosgi.requiredJavaVersion=1.6
    -Xms40m
    -Xmx768m
    -Declipse.buildId=v21.1.0-569685
    
Гархи
источник
9

Вы также можете решить эту проблему, удалив значение «256m» в строке «-launcher.XXMaxPermSize».

Ясир Али
источник
Работал на меня. Хотя даже с этим значением он работал нормально после выхода из системы Windows и затем входа в систему.
Амар
9

Я нашел очень простое решение для этого. Просто удалите eclipse.iniфайл, но сначала сделайте резервную копию. У меня была такая же проблема много раз, и, наконец, я удалил это, и у меня больше нет проблемы.

Это также увеличило время загрузки. Теперь мое затмение начинается быстрее, чем раньше.

user3739970
источник
После удаления файла eclipse.ini я получаю эту ошибку, когда
пытаюсь
здорово! Я попытался так много шагов, чтобы редактировать INI-файл. но этот ответ великолепен. оно работает. ура!
край
7

В STS.confфайле нужно проверить две важные вещи, чтобы избежать проблемы создания / размещения jvm

1. Укажите точное место установки jdk:

--vm C:\Program Files\Java\jdk1.7.0_01\jre\bin\javaw.exe

2. Вам нужно указать точную версию Java, установленную:

--Dosgi.requiredJavaVersion=1.7

3. Попробуйте уменьшить объем памяти:

--XX:MaxPermSize=256m
rajachinnappan
источник
7
  1. Откройте файл ecplise.ini, который находится в папке установки eclipse.

  2. Найдите и замените строку -vmargs на -vm D: \ jdk1.6.0_23 \ bin \ javaw.exe ИЛИ просто удалите строку -vmargs и сохраните ее. Теперь проблема решается

Раджас
источник
2
Спасибо @Rajas, просто удалите строку -vmargs и сохраните, чтобы она работала для меня
Бернауэр
5

После попытки описанного выше решения по уменьшению памяти Eclipse начинает работать, но зависает каждый раз при загрузке плагинов из рабочего пространства, особенно в org.eclipse.debug.core.

Я нашел решение здесь, Eclipse висит на Splash Screen , и хочу поделиться им. Надеюсь, это может помочь и другим.

Рахул Раздан
источник
в отличие от всего, что я пробовал в последний час, это сработало, спасибо!
Джастин Т.
Мертвая ссылка, есть шанс, что у вас есть другая?
Адам Паркин
4

Убедитесь, что eclipse.ini не имеет несколько записей и используется запись vm перед vmargs:

-vm
  D:/java/jdk1.8.0_65/bin/javaw.exe
-vmargs
-Dosgi.requiredJavaVersion=1.8
-Dosgi.instance.area.default=@user.home/eclipse-workspace
-XX:+UseG1GC
-XX:+UseStringDeduplication
-Dosgi.requiredJavaVersion=1.8
-Xms256m
-Xmx1024m
Сунил Шакья
источник
3

Попробуй это:

-startup plugins/org.eclipse.equinox.launcher_1.1.1.R36x_v20101122_1400.jar 
--launcher.library plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.2.R36x_v20101222 
-showsplash org.eclipse.platform 
--launcher.XXMaxPermSize 256m 
--launcher.defaultAction openFile 
-vm F:\Program Files\jdk1.6\bin\javaw.exe 
-vmargs 
-Xms512m 
-Xmx512m 
-XX:+UseParallelGC 
-XX:PermSize=256M 
-XX:MaxPermSize=512M
Брахма Редди
источник
3

Быстрая починка:

Изменение -Xmx1024mк -Xmx512mв eclipse.ini (файл , расположенный на том же уровне , где eclipse.exeприсутствует). И это будет работать как шарм.

Sumoanand
источник
3

Простой способ решить эту проблему - просто удалить или переименовать файл eclipse.ini . Попробуй сначала. Если этот метод не решит вашу проблему, попробуйте решения, описанные ниже.

Другие способы исправить это:

Решение 1

Добавьте строку в файл eclipse.ini, который меняет место назначения javaw.exeфайла. Главное, чтобы эта строка была расположена над строкой "-vmargs"!

-vm
C:\Program Files\Java\jdk1.6.0_22\bin\javaw.exe 

Решение 2

Удалите значение –launcher.XXMaxPermSize, например, 256м .

Решение 3

Удалите или уменьшите значения Xms и Xmx:

-Xms384m 
-Xmx384m
Dimon
источник
3

Это может работать:

Откройте eclipse.iniфайл и вставьте ниже строки в конце строки.

-vmargs
-Xms40m
-Xmx512m
-XX:MaxPermSize=256m
УдайКиран Пулипати
источник
3

После добавления -vm в eclipse.ini, как показано ниже, у меня получилось. Добавьте это прежде, -vmargsчем не удалите это

-vm
C:\apps\Java\jdk1.8.0_92\bin\javaw.exe
-vmargs

Было обновление jdk, которое вызывало эту проблему.

Динеш М
источник
2

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

Я закрыл все другие приложения, интенсивно использующие память, на моем компьютере с Windows 7. И я попытался открыть Eclipse, и, вуаля, это сработало.

amalBit
источник
2

Некоторое время это не ваш eclipse.ini ; это ваш JDK, который разбился. Вы можете проверить это, написав следующую команду в командной строке:

c:\> java -version

Если эта команда показывает следующую ошибку:

Error occurred during initialization of VM

java/lang/NoClassDefFoundError: java/lang/Object

Затем сначала удалите JDK и переустановите его.

Затмение снова будет в действии;) Так как сегодня у меня возникла та же проблема, и Итачи Учиха предлагает это .

TheLittleNaruto
источник
2

Столкнулся с проблемой, когда мой протон Eclipse не смог запуститься. Получена ошибка «Не удалось создать виртуальную машину Java»

Добавлено ниже в файл eclipse.ini

-vm
C:\Program Files\Java\jdk-10.0.1\bin\javaw.exe
VKG
источник
1

Добавление этого исправило проблему для меня:

-vm

D:\Java\jdk1.6.0_29\bin\javaw.exe
ahmedmzl
источник
1

Уменьшить размер параметра до -256

Смотрите мой файл eclipse.ini

    -startup
   plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar
   --launcher.library
  plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.100.v20110502
  -product
   org.eclipse.epp.package.jee.product
   --launcher.defaultAction
   openFile
   --launcher.XXMaxPermSize
   256M
  -showsplash
   org.eclipse.platform
   --launcher.XXMaxPermSize
   256M
  --launcher.defaultAction
  openFile
  -vmargs
  -Dosgi.requiredJavaVersion=1.6
  -Xms40m
  -Xmx512m
Youdhveer
источник
1

Правильным решением вашей проблемы является добавление строки -vm, указывающей на файл jvm.dll вашей папки Java в ini fie.

-vm
C:\Program Files\Java\jre1.8.0_202\bin\server\jvm.dll
/*there is no dquote for path, and path points to right java version folder mentioned in ini file*/

Если вышеприведенное исправление не принесло пользы, не пытайтесь делать что-либо еще. Большинство советов в этой теме ошибочны. Некоторые из этих хаков могут работать временно или на определенных конфигурациях компьютеров, но содержимое eclipse.ini не является тривиальным или произвольным. Для получения авторитетной ссылки см. Эту [вики-страницу]: https://wiki.eclipse.org/Eclipse.ini#Specifying_the_JVM, в которой поясняется содержимое файла. Также обратите внимание на ссылки «См. Также» внизу этой страницы для получения более подробной информации о таких вещах, как размер кучи и т. Д. НЕ удаляйте eclipse.ini, НИКОГДА. Также не рекомендуется удалять опции -vm или Xmx. Если вы это сделаете, вы напрашиваетесь на неприятности.

Вот ссылки со страницы вики, относящиеся к вашей проблеме:

Reference_1

Reference_2

Вишвеш Мангалор
источник
1
простая, но важная пинта, которую нужно упомянуть: -vmдолжна быть помещена перед -vmargs опцией в eclipse.ini.
Вудз
0

Для меня это решено путем изменения пути бина JDK в переменной среды Path. Поместите путь к корзине JDK, в котором находится jre / bin / client / jvm.dll, под JDK home.

Срихари Карантх
источник
0

ШАГИ ДЛЯ РЕШЕНИЯ ВОПРОСА: -

  1. Откройте файл eclipse.ini из папки eclipse.

  2. Он имеет некоторые дополнительные настройки. Найдите строку –launcher.XXMaxPermSize.It будет последней строкой в ​​этом файле. Теперь удалите / удалите значение по умолчанию 256m и сохраните его.

Нихил Кумар
источник
0

Я столкнулся с той же проблемой, и я нашел решение. Есть проблемы в распределении MaxPermSize. Если вы попытаетесь выделить больше, чем свободное место на вашей машине, то это даст мне ошибку в моем выпуске. Поэтому постарайтесь уменьшить MaxPermSize.

Я думаю, что это поможет вам разобраться в вашей проблеме.

Канани Мохит
источник
0

Все эти решения меня подвели. Это случилось со мной на ровном месте после использования Eclipse в течение шести месяцев. Кажется, как-то мой JDK испортился.

Мое возможное решение состояло в том, чтобы загрузить более новый JDK и соответственно обновить мой JAVA_HOME, от jdk1.6.0_37 до jdk1.6.0_43 в моем случае.

Райан Хайтнер
источник
0

@ Маро Для меня это сработало очень просто!

После получения сообщения об ошибке я запустил eclipse c .exe из командной строки. Это открыло Затмение. Потом я снова попробовал с 'eclipse.exe', и теперь он работает хорошо и хорошо.

К сожалению, это не дало технической причины для этого.

Satyendra
источник