Помилка 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виправляє проблему, але вона спричиняє помилки пермгену
  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 до 512м з 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файл із папки затемнення, див. Малюнок нижче.

затемнення.іні

2. Відкрийте eclipse.iniу Notepadбудь-якій іншій text-editorпрограмі або знайдіть рядок -Xmx256m(або -Xmx1024m). Тепер змініть значення за замовчуванням 256m(або 1024m) на 512m. Вам також потрібно дати точну встановлену версію 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
Це насправді працювало і для мене. - Примітка: ewclipse просто перестала працювати - я мала -Xmx1024m, зверталася Xmx512mі працювала. Мабуть, не вистачало пам’яті (?)
Mr_and_Mrs_D

У моєму випадку він не працював над зміною значення на 512 з 1024, але коли я знову змінив його на попереднє значення, тобто 1024, він працював.
TaRan LaYal

1
Нічого ... На Марці Eclipse я змінив -Xmx1024m на -Xmx512m і він працював!
Умеш Патіл

111

Спробуйте додати

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

FYI: Перегляньте сонцезахисний крем

Для інших, у кого можуть виникнути проблеми з 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


Це чудово працює, але я віддаю перевагу використанню -vm C: \ Program Files (x86) \ Java \ jre6 \ bin \ javaw.exe, оскільки шлях JRE швидше залишатиметься стабільним, особливо якщо ви використовуєте одну установку Eclipse в межах кілька машин / VM.
грабувати

це працювало на мене, але під час завантаження затемнення стає повішеним на org.eclipse.debug.core
Рахул Раздан

5
+1 Я бракував частини для замовлення. У всіх інших місцях у мережі вони говорять про аргумент -vm, але вони нехтують сказати, що це має відбутися до -vmargs
demongolem

Під час встановлення Android SDK з затемненням я зіткнувся з тією ж проблемою, і це виправлено. Дякую !
кодіціолог

Для запису я використовую Windows 7 Home Premium та Server JVM 1.8.0_05, другий метод, вказуючи на dll, який працював на мене, перший метод не робив.
Ironluca

26

Я знаю, що це досить старе зараз, але у мене тільки-но виникло те саме питання, і проблема полягала в тому, що я виділяв багато пам’яті на затемнення, яке не могло одержати. Тож відкрийте eclipse.ini і зменшіть обсяг пам’яті, що виділяється, -Xmx XXMaxPermSizeя змінив свою на -Xmx512mіXXMaxPermSize256m


Це на 32-бітній машині? Тому що я вважаю, що існує обмеження на кількість пам'яті, яку ви можете використовувати у 32-бітових вікнах
Maro

@Maro Так. Дивлячись на підвищення рівня до 64 біт.
Popeye

1
Працював для мене, замінив 768м на 512м за параметром -Xmx.
тартак

Я перебуваю на 64-розрядній машині з 8 ГБ пам'яті, але все ще використовую -Xmx = 768 м у поєднанні з -XX: PermSize = 256 м і -XX: MaxPermSize = 512 м виявилося занадто багато. Це 32-бітна Java, тому вона може використовувати лише 4 Гб, але максимум на практиці набагато нижча. Я б очікував, що для цього потрібно 1024 м для старту і 1280 м максимум ...
Штійн де Вітт

Дякую, я впевнений, що я змінив його на 1024 кілька місяців тому, щоб подолати проблему. Справжня відповідь на це питання - перейти на Android Studio, це набагато приємніше. Я повернувся лише до Eclipse, бо не переніс жодного зі своїх старих додатків і мені потрібно було щось зробити.
Райан Хайтнер

18
  1. Відкрийте eclipse.iniфайл із папки затемнення.

  2. Він має деяке доповнення в конфігурації. Знайдіть рядок –launcher.XXMaxPermSize. Тепер видаліть значення за замовчуванням 256м і збережіть його.


18

Я прибрав eclipse.ini . Я зіткнувся з цією проблемою, і видалення файлу ini вирішило її.


12
  1. Відкрийте папку з Eclipse.exe і знайдіть файл eclipse.ini
  2. Замініть -vmargs на ваш поточний реальний шлях javaw.exe: * -vm “c: \ програмні файли \ 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, а потім входу в систему.
amar

9

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

Це також збільшило час завантаження. Тепер моє затемнення починається швидше, ніж раніше.


Після видалення eclipse.ini я отримую цю помилку, коли намагався запустити Eclipse => програма запуску запуску затемнення не змогла знайти свою спільну бібліотеку
NIKHIL CHAURASIA

приголомшливий! Я спробував так багато кроків, щоб відредагувати файл 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

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присутня). І це спрацює як шарм.


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


3

Після додавання -vm у eclipse.ini, як показано нижче, працював для мене. Додайте його раніше-vmargs не виймайте

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

Було оновлено jdk, яке спричинило цю проблему.


2

Це працювало для мене:

Я закрив всі інші додатки, які потребують пам'яті на моїй машині Windows 7. І я спробував відкрити Eclipse, і, вуаля, це спрацювало.


2

Деякий час це не ваш eclipse.ini ; це ваш JDK, який розбився. Ви можете перевірити це, записавши наступну команду в командному рядку:

c:\> java -version

Якщо ця команда показує таку помилку:

Error occurred during initialization of VM

java/lang/NoClassDefFoundError: java/lang/Object

Потім спочатку видаліть JDK та перевстановіть його.

Затьмарення знову буде діяти;) Як і сьогодні у мене є та сама проблема, і вищесказане пропонує Ітачі Учіха .


2

Зіткнувся з проблемою, коли мій протон Eclipse не міг запуститися. Отримала помилку "Не вдалося створити віртуальну машину Java"

Додано нижче до файла eclipse.ini

-vm
C:\Program Files\Java\jdk-10.0.1\bin\javaw.exe

1

Додавання цієї проблеми вирішило для мене:

-vm

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

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

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. Якщо ви це робите, ви просите неприємностей.

Ось посилання на сторінку вікі, що стосуються вашої проблеми:

Довідник_1

Довідка_2


1
простий, але важливий пінт, який слід зазначити: -vmповинен бути розміщений перед -vmargs опцією в eclipse.ini.
woodz

0

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


0

КРОКИ РОЗВИТКУ ВИПУСКУ: -

  1. Відкрийте файл eclipse.ini зі своєї папки eclipse.

  2. Він має деяке доповнення в конфігурації. Знайдіть рядок –лаунчер.XXMaxPermSize. Це буде останній рядок у цьому файлі. Тепер видаліть / видаліть значення за замовчуванням 256м і збережіть його.



0

Я зіткнувся з тією ж проблемою, і знайшов рішення. Існують проблеми з розподілом MaxPermSize. Якщо ви спробуєте виділити більше, ніж вільного місця на вашій машині, це дасть цю помилку в моєму питанні. Тому спробуйте зменшити MaxPermSize.

Я думаю, що це допоможе тобі розібратися з проблемою.


0

Всі ці рішення мене провалили. Це трапилося зі мною невдало після використання Eclipse протягом півроку. Здається, якимось чином JDK зіпсувався.

Моє можливе рішення - завантажити новіший JDK і відповідно оновити JAVA_HOME, з jdk1.6.0_37 до jdk1.6.0_43 у моєму випадку.


0

@Maro Для мене це працювало дуже просто!

Після отримання повідомлення про помилку, я виконав 'eclipse c .exe' з командного рядка. Це відкрило затемнення. Потім знову спробував з 'eclipse.exe', і тепер це працює добре і добре.

На жаль, це не дало жодних технічних причин для цього.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.