Błąd Eclipse: „Nie udało się utworzyć wirtualnej maszyny Java”

211

Otrzymuję ten komunikat o błędzie podczas uruchamiania Eclipse Helios w systemie Windows 7:

Nie udało się utworzyć wirtualnej maszyny Java

Wpisz opis zdjęcia tutaj

Moje eclipse.ini wygląda następująco:

-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

Mój JAVA_HOME jest poprawnie ustawiony, o ile mi wiadomo. Jak mogę to naprawić?

Rzeczy, których do tej pory próbowałem:

  1. Dodanie pełnej ścieżki do javaw.exe -vm P:\Programs\jdk1.6\bin\\bin\javaw.exe
  2. Całkowite usunięcie -vmopcji
  3. Usunięcie --launcher.XXMaxPermSizerozwiązuje problem, ale powoduje błędy permgen
  4. Usuwanie wartości 512z --launcher.XXMaxPermSizerozwiązuje problem, ale to powoduje błędy PermGen
  5. Zmniejszenie -Xmxdo 512mrównież rozwiązuje problem.

Dlaczego nie mogę użyć „1024m” dla „-Xmx” i „--launcher.XXMaxPermSize”?

Maro
źródło
18
Oznacza to, że jvm nie może przydzielić wymaganej ilości pamięci (1024 + 512) na komputerze.
Kane
Więc tylko dla potwierdzenia, że ​​rozumiem to poprawnie. JVM przydzieli ilość pamięci określoną przez (XXMaxPermSize + Xmx)
Maro
2
Nie uruchamia natychmiast pamięci o maksymalnym rozmiarze sterty (określonym przez -Xmx) podczas uruchamiania vm. Ale upewniłby się, że ma możliwość stworzenia maksymalnego rozmiaru sterty w czasie wykonywania podczas uruchamiania vm. Jeśli nie, nie można utworzyć VM.
Kane
Nie mam pojęcia, dlaczego, ale na moim komputerze Eclipse ma ten problem tylko wtedy, gdy działa Dragon NaturallySpeaking. Rozwiązanie RonQi zadziałało dla mnie.
okradać
@rob: Prawdopodobnie dlatego, że Dragon używa dużo pamięci. Przyczyną tego problemu wydaje się być to, że JVM nie może przydzielić wystarczającej ilości pamięci.
Stijn de Witt

Odpowiedzi:

80

Spróbuj usunąć -vm P:\Programs\jdk1.6\binlinie.


Również ogólne zalecenie: ustaw -Dosgi.requiredJavaVersion=1.6, a nie 1.5.

Matt Ball
źródło
52
W eclipse.ini zmiana zmniejszania -Xmx do 512m z 1024 naprawiła dla mnie problem. System miał 1 GB pamięci RAM.
Dexter,
3
@dexter, dziękuję, zadziałało dla mnie, zmniejszając Xmx
danisupr4
dla systemu Mac Eclipse-2020 dodaj: „- vm” ”/Library/Java/JavaVirtualMachines/jdk1.8.0_172.jdk/Contents/Home/bin/java„ poniżej ”--launcher.appendVmargs” w pliku eclipse.ini.
clark yu
283

1. Otwórz eclipse.iniplik z folderu Eclipse, patrz zdjęcie poniżej.

eclipse.ini

2. Otwórz eclipse.iniw Notepadlub w dowolnej innej text-editoraplikacji, Znajdź linię -Xmx256m(lub -Xmx1024m). Teraz zmień wartość domyślną 256m(lub 1024m) na 512m. Musisz także podać dokładną zainstalowaną wersję Java (1.6 lub 1.7 lub inną).

max size

Lubię to:

-Xmx512m
-Dosgi.requiredJavaVersion=1.6

LUB

-Xmx512m
-Dosgi.requiredJavaVersion=1.7

LUB

-Xmx512m
-Dosgi.requiredJavaVersion=1.8

To działa dobrze dla mnie.

Akhil Jain
źródło
8
Będzie to działać tylko wtedy, gdy problemem będzie za mało pamięci i jeśli obniżysz wartości w eclipse.ini. Ich podniesienie tylko zwiększy prawdopodobieństwo wystąpienia tego problemu.
Stijn de Witt
2
Dzięki Yar, zwiększyłem tę wartość i działało dobrze, myślę, że tak się stało, ponieważ zaktualizowałem JDK.
Pervez Alam
1
To faktycznie działało również dla mnie - NB: ewclipse właśnie przestało działać - miałem -Xmx1024m, zwróciłem się Xmx512mi pracowałem. Najwyraźniej brakowało pamięci (?)
Mr_Mrs_D
W moim przypadku nie działało to na zmianę wartości na 512 z 1024, ale kiedy ponownie zmieniłem ją na poprzednią, tj. 1024, działało.
TaRan LaYal
1
Wow .. W przypadku Eclipse Mars zmieniłem -Xmx1024m na -Xmx512m i zadziałało!
Umesh Patil,
111

Spróbuj dodać

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

FYI: Patrz blog słoneczny

Dla innych, którzy mogą mieć problemy z Javą 7, zgodnie z Eclipse Wiki - eclipse.ini vm_value (przykład Windows)

To może nie działać na wszystkich systemach. Jeśli podczas uruchamiania zaćmienia napotkasz błąd „Java został uruchomiony, ale zwrócił kod wyjścia = 1”, zmodyfikuj argument -vm, aby wskazywał na jvm.dll

na przykład

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

Zauważ też, że

Opcja -vm musi wystąpić przed opcją -vmargs, ponieważ wszystko po -vmargs jest przekazywane bezpośrednio do JVM

RonQi
źródło
Działa to świetnie, ale wolę używać -vm C: \ Program Files (x86) \ Java \ jre6 \ bin \ javaw.exe, ponieważ ścieżka JRE jest bardziej stabilna, szczególnie jeśli współużytkujesz jedną instalację Eclipse przez wiele maszyn / maszyn wirtualnych.
okradać
zadziałało to dla mnie, ale podczas ładowania zaćmienia zostaje powieszony na org.eclipse.debug.core
Rahul Razdan
5
+1 Brakowało mi części zamówienia. Wszystkie inne miejsca w sieci mówią o argumencie -vm, ale zaniedbują stwierdzenie, że musi to nastąpić przed -vmargs
demongolem
Napotkałem ten sam problem podczas instalowania zestawu Android SDK z zaćmieniem i to naprawiło. Dzięki !
ds. Kodeksu
Dla przypomnienia używam Windows 7 Home Premium i Server JVM 1.8.0_05, druga metoda, wskazując na dll działał dla mnie, pierwsza metoda nie.
Ironluca,
26

Wiem, że jest już dość stary, ale właśnie miałem ten sam problem i problem polegał na tym, że przeznaczałem dużo pamięci na zaćmienie, którego nie można było zdobyć. Więc otwórz eclipse.ini i zmniejsz ilość pamięci, która jest przydzielana -Xmx XXMaxPermSize, zmieniłem moje na -Xmx512miXXMaxPermSize256m

Popeye
źródło
Czy to na 32-bitowej maszynie? Ponieważ uważam, że istnieje limit ilości pamięci, którą można wykorzystać w 32-bitowych oknach
Maro
@Maro Tak to było. Patrząc na uaktualnienie do wersji 64-bitowej.
Popeye,
1
Pracowałem dla mnie, zastąpiłem 768m 512m dla parametru -Xmx.
tartak
Jestem na komputerze 64-bitowym z 8 GB pamięci, ale nadal używam -Xmx = 768m w połączeniu z -XX: PermSize = 256m i -XX: MaxPermSize = 512m okazało się za dużo. Jest to 32-bitowa Java, więc może „używać” tylko 4 GB, ale w praktyce maksymalna wydaje się być znacznie niższa. Spodziewałbym się, że potrzeba 1024m na start i 1280m max ...
Stijn de Witt
Dzięki, jestem pewien, że zmieniłem go na 1024 kilka miesięcy temu, aby obejść ten problem. Prawdziwa odpowiedź na to pytanie to przeniesienie do Android Studio, jest o wiele ładniejsze. Wróciłem do Eclipse tylko dlatego, że nie przeprowadziłem migracji jednej ze starszych aplikacji i musiałem coś zrobić.
Ryan Heitner
18
  1. Otwórz eclipse.iniplik z folderu Eclipse.

  2. Ma trochę dodatkowej konfiguracji. Znajdź linię –launcher.XXMaxPermSize. Teraz usuń domyślną wartość 256 m i zapisz ją.

Furqi
źródło
18

Usunąłem eclipse.ini . Napotkałem ten problem i usunięcie pliku ini rozwiązało go.

Monnster
źródło
12
  1. Otwórz folder za pomocą Eclipse.exe i znajdź plik eclipse.ini
  2. Zastąp -vmargs bieżącą rzeczywistą ścieżką pliku 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
    
Garhy
źródło
9

Możesz również rozwiązać ten problem, usuwając wartość „256m” pod linią „-launcher.XXMaxPermSize”.

Yasir Ali
źródło
Pracował dla mnie. Chociaż nawet z tą wartością, działało dobrze po wylogowaniu z systemu Windows, a następnie zaloguj się.
amar
9

Znalazłem na to bardzo łatwe rozwiązanie. Po prostu usuńeclipse.ini plik, ale najpierw wykonaj kopię zapasową. Miałem ten sam problem wiele razy i ostatecznie go usunąłem i nie mam już problemu.

Zwiększyło to także czas ładowania. Teraz moje Eclipse zaczyna się szybciej niż wcześniej.

użytkownik3739970
źródło
Po usunięciu eclipse.ini pojawia się ten błąd, gdy próbuję uruchomić Eclipse => program uruchamiający eclipse nie był w stanie zlokalizować swojej współdzielonej biblioteki towarzyszącej
NIKHIL CHAURASIA
niesamowite! Próbowałem tylu kroków, aby edytować plik INI. ale ta odpowiedź jest świetna. to działa. Twoje zdrowie!
krawędź
7

W STS.conf pliku musisz sprawdzić dwie ważne rzeczy, aby uniknąć tworzenia / alokowania problemu z JVM

1. Podaj dokładną lokalizację instalacji jdk:

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

2. Musisz podać dokładną zainstalowaną wersję Java:

--Dosgi.requiredJavaVersion=1.7

3. Spróbuj zmniejszyć rozmiar pamięci:

--XX:MaxPermSize=256m
rajachinnappan
źródło
7
  1. Otwórz plik ecplise.ini, który znajduje się w folderze instalacyjnym eclipse.

  2. Znajdź i zamień linię -vmargs na -vm D: \ jdk1.6.0_23 \ bin \ javaw.exe LUB po prostu usuń linię -vmargs i zapisz ją. Teraz problem został rozwiązany

Rajas
źródło
2
Dzięki @Rajas po prostu usuń linię -vmargs i zapisz, że zadziałała dla mnie
Bernauer
5

Po wypróbowaniu powyższego rozwiązania polegającego na zmniejszeniu pamięci, Eclipse zaczyna działać, ale zawiesza się za każdym razem podczas ładowania wtyczek specjalnie z obszaru roboczego org.eclipse.debug.core.

Znalazłem rozwiązanie tutaj, Eclipse zawiesza się na ekranie powitalnym i chcę je udostępnić. Mam nadzieję, że może pomóc także innym.

Rahul Razdan
źródło
w przeciwieństwie do wszystkiego, czego próbowałem w ciągu ostatniej godziny, TO działało, dzięki!
Justin T.,
Dead link, czy jest szansa, że ​​masz inną?
Adam Parkin
4

Upewnij się, że eclipse.ini nie ma wielu wpisów i używał wpisu vm przed vmargs:

-vm
  D:/java/jdk1.8.0_65/bin/javaw.exe
-vmargs
-Dosgi.requiredJavaVersion=1.8
[email protected]/eclipse-workspace
-XX:+UseG1GC
-XX:+UseStringDeduplication
-Dosgi.requiredJavaVersion=1.8
-Xms256m
-Xmx1024m
Sunil Shakya
źródło
3

Spróbuj tego:

-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
Brahma Reddy
źródło
3

Szybka naprawa:

Zmiana -Xmx1024mdo -Xmx512mw eclipse.ini (plik znajduje się na tym samym poziomie, na którym eclipse.exejest obecny). I będzie działać jak urok.

Sumoanand
źródło
3

Prostym sposobem rozwiązania tego problemu jest po prostu usunięcie lub zmiana nazwy pliku eclipse.ini . Wypróbuj najpierw. Jeśli ta metoda nie rozwiąże problemu, wypróbuj rozwiązania opisane poniżej.

Inne sposoby, aby to naprawić:

Rozwiązanie 1

Dodaj ciąg do pliku eclipse.ini , który zmienia miejsce docelowe javaw.exepliku. Najważniejsze, że ten ciąg musi być umieszczony nad ciągiem „-vmargs”!

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

Rozwiązanie 2

Usuń wartość –launcher.XXMaxPermSize, np. 256m . .

Rozwiązanie 3

Usuń lub zmniejsz wartości Xms i Xmx:

-Xms384m 
-Xmx384m
Dimon
źródło
3

Może to działać:

Otwórz eclipse.iniplik i wklej poniżej linii na końcu linii.

-vmargs
-Xms40m
-Xmx512m
-XX:MaxPermSize=256m
UdayKiran Pulipati
źródło
3

Po dodaniu -vm w pliku eclipse.ini, jak pokazano poniżej, działało dla mnie. Dodaj go wcześniej -vmargs, nie usuwaj

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

Aktualizacja JDK powodowała ten problem.

Dinesh M.
źródło
2

To działało dla mnie:

Zamknąłem wszystkie inne aplikacje wymagające dużej ilości pamięci na moim komputerze z systemem Windows 7. Próbowałem otworzyć Eclipse i, voila, zadziałało.

amalBit
źródło
2

Kiedyś to nie jest twoje eclipse.ini ; to twój JDK, który się zawiesił. Możesz to sprawdzić, pisząc następujące polecenie w wierszu polecenia:

c:\> java -version

Jeśli to polecenie wyświetla następujący błąd:

Error occurred during initialization of VM

java/lang/NoClassDefFoundError: java/lang/Object

Następnie najpierw odinstaluj JDK i zainstaluj go ponownie.

Zaćmienie znów zacznie działać;) Tak jak dzisiaj mam ten sam problem, a powyższe sugeruje Itachi Uchiha .

TheLittleNaruto
źródło
2

W obliczu problemu, gdy mój proton Eclipse nie mógł się uruchomić. Wystąpił błąd „Nie udało się utworzyć wirtualnej maszyny Java”

Dodano poniżej do pliku eclipse.ini

-vm
C:\Program Files\Java\jdk-10.0.1\bin\javaw.exe
vkg
źródło
1

Dodanie tego naprawiło problem dla mnie:

-vm

D:\Java\jdk1.6.0_29\bin\javaw.exe
ahmedmzl
źródło
1

Zmniejsz rozmiar parametru do -256

Zobacz mój plik 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
źródło
1

Właściwym rozwiązaniem problemu jest dodanie wiersza -vm wskazującego na plik jvm.dll folderu Java w 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*/

Jeśli powyższa poprawka nie jest owocna, nie próbuj niczego innego. Większość porad w tym wątku jest błędna. Niektóre z tych hacków mogą działać tymczasowo lub na niektórych konfiguracjach maszyn, ale zawartość pliku eclipse.ini nie jest trywialna ani arbitralna. Autorytatywne odniesienia można znaleźć na [stronie wiki]: https://wiki.eclipse.org/Eclipse.ini#Specifying_the_JVM która wyjaśnia zawartość pliku. Zwróć również uwagę na linki Zobacz także u dołu tej strony, aby uzyskać więcej informacji na temat wielkości sterty itp. NIE usuwaj eclipse.ini, NIGDY. Nie zaleca się również usuwania opcji -vm lub Xmx. Jeśli tak, prosisz o kłopoty.

Oto odniesienia ze strony wiki dotyczące Twojego problemu:

Odniesienie_1

Odniesienie_2

Vishwesh Mangalore
źródło
1
prosta, ale ważna litera do wspomnienia: -vmmusi być umieszczona przed -vmargs opcją w eclipse.ini.
woodz
0

Dla mnie rozwiązano to przez zmianę ścieżki bin JDK w zmiennej środowiskowej Path. Umieść ścieżkę bin JDK, która zawiera jre / bin / client / jvm.dll w katalogu głównym JDK.

Srihari Karanth
źródło
0

KROKI ROZWIĄZANIA PROBLEMU: -

  1. Otwórz plik eclipse.ini z folderu eclipse.

  2. Ma trochę dodatkowej konfiguracji. Znajdź wiersz –launcher.XXMaxPermSize. Będzie to ostatni wiersz w tym pliku. Teraz usuń / usuń domyślną wartość 256 m i zapisz ją.

Nikhil Kumar
źródło
0
-vm D:\Java\jdk1.6.0_29\bin\javaw.exe
Mężczyzna
źródło
0

Napotkałem ten sam problem i znalazłem rozwiązanie. Występują problemy z alokacją MaxPermSize. Jeśli spróbujesz przydzielić więcej niż wolne miejsce na komputerze, spowoduje to wystąpienie tego błędu w moim problemie. Więc spróbuj zmniejszyć MaxPermSize.

Myślę, że pomoże ci to rozwiązać problem.

Kanani Mohit
źródło
0

Wszystkie te rozwiązania zawiodły mnie. Zdarzyło mi się to nieoczekiwanie po sześciu miesiącach używania Eclipse. Wygląda na to, że mój JDK został uszkodzony.

Moim ostatecznym rozwiązaniem było pobranie nowszej wersji JDK i odpowiednia aktualizacja JAVA_HOME odpowiednio z jdk1.6.0_37 do jdk1.6.0_43 w moim przypadku.

Ryan Heitner
źródło
0

@Maro Dla mnie to działało bardzo prosto!

Po otrzymaniu ostrzeżenia o błędzie wykonałem „eclipse c .exe” z wiersza polecenia. To otworzyło Eclipse. Potem znowu spróbowałem z „eclipse.exe” i teraz działa dobrze i dobrze.

Niestety nie podało to technicznej przyczyny.

Satyendra
źródło