Eclipse - kein Java (JRE) / (JDK)… keine virtuelle Maschine

278

Ich versuche, Eclipse v3.5 (Galileo) auf meinem Computer erneut auszuführen. Ich habe es zuvor ohne Probleme ausgeführt, aber jetzt wird immer wieder der folgende Fehler angezeigt :

Zum Ausführen von Eclipse muss eine Java Runtime Environment (JRE) oder ein Java Development Kit (JDK) verfügbar sein. Nach dem Durchsuchen der folgenden Speicherorte wurde keine virtuelle Java-Maschine gefunden: C: \ eclipse \ jre \ javaw.exe javaw.exe in Ihrem aktuellen PATH

Ich habe gerade eine Neuinstallation sowohl des JDK als auch des SDK durchgeführt.

Ich habe Windows 7 (x64).

Was ist damit los? Wie behebe ich das?

Ich kann keine ipconfig / tracert / oder Ping ausführen.

Wallter
quelle
3
Java Runtime Environmentist JRE nicht SDK ...
user85421
1
Installieren Sie eine JRE - dies gibt eine javaw.exe in Ihrem Pfad. JDK's nicht.
Thorbjørn Ravn Andersen
12
@ Carlos, jedes JDK bringt eine private JRE.
Thorbjørn Ravn Andersen
3
@ Thorbjørn: und worum geht es? Ich weiß das und auch, dass JDK auch eine öffentliche JRE bringt . Ich habe geschrieben, dass "Java Runtime Environment kein SDK ist", aber Sie müssen den Originalbeitrag lesen (bevor Sie ihn am 11. Januar bearbeiten), um zu verstehen, warum ich ihn geschrieben habe: "A java Runtime Environment ( SDK ) oder ..."
user85421
11
Wenn Sie JDK kürzlich nach der Installation von Eclipse in einem anderen Pfad installiert haben, kann dieses Problem auftreten. Dies liegt daran, dass der Eclipse-Hardcode den JDK-Pfad in eclipse.ini codiert, wenn er zum ersten Mal eingerichtet wird. Ändern Sie einfach den richtigen JDK-Pfad in eclipse.ini. Das sollte diesen Fehler beheben.
Rajaraman

Antworten:

221

Eclipse versucht standardmäßig, mit der Standardeinstellung " java.exe" zu starten (die erste, auf die Sie verweisen PATH).

Drei Dinge, an die Sie sich erinnern sollten:

  • Das "Installieren" einer JRE oder eines JDK kann so einfach sein wie das Entpacken oder Kopieren von einem anderen Computer: Es gibt keine speziellen Installationsschritte, und Sie können so viele verschiedene JVM-Versionen (1.4, 5.0, 6.0 ...) haben, wie Sie möchten , "installiert" (kopiert) fast überall auf Ihrer Festplatte.
  • Ich würde empfehlen, Eclipse immer mit der neuesten JRE auszuführen (um von den neuesten Hotspot- Entwicklungen zu profitieren ). Sie können:
  • Die JVM, auf die Sie in Ihrer Eclipse-Sitzung verweisen, wird nicht immer zum Starten von Eclipse verwendet, weil:
    • Sie benötigen nur eine JRE, um Eclipse zu starten. Nach dem Start von Eclipse sollten Sie jedoch ein JDK für Ihre Projekte registrieren (insbesondere für Java-Quellen und Debugging-Zwecke, theoretisch auch zum Kompilieren, aber Eclipse verfügt über einen eigenen Java-Compiler). Hinweis: Sie können sich einfach registrieren eine JRE in Eclipse, da es ausreicht, um Ihr Programm auszuführen , aber auch hier ermöglicht ein JDK mehr Operationen.
    • Obwohl das in Eclipse standardmäßig registrierte Java zum Starten der Sitzung verwendet wird, können Sie ein älteres SDK (einschließlich eines Nicht-Sun-SDK) registrieren, um Ihre Programme mit einer JRE auszuführen / zu debuggen, die der JRE ähnelt tatsächlich in der Produktion verwendet werden.

Installierte JREs


Juni 2012, jmbertucci kommentiert:

Ich verwende Windows 7 64-Bit und hatte die 32-Bit-JRE installiert. Ich habe Eclipse 64-Bit heruntergeladen, das nach einer 64-Bit-JRE sucht. Da ich die 64-Bit-JRE nicht hatte, wurde der Fehler ausgegeben, was Sinn macht.

Ich ging zur Java-Seite für die manuelle Installation (auf die nicht so direkt zugegriffen werden konnte, wie Sie möchten) und installierte die 64-Bit-Version. Siehe " Java-Downloads für alle Betriebssysteme ". Das war alles was ich brauchte.


April 2016: Steve Mayne fügt in den Kommentaren hinzu :

Ich musste die eclipse.iniDatei bearbeiten , um auf den richtigen Java-Pfad zu verweisen. Eclipse verwendet die Umgebung PATHüberhaupt nicht, wenn ein Wert in vorhanden ist eclipse.ini.

VonC
quelle
42
Diese Frage / Antwort ist etwas alt, aber ich bin auf dieses Problem gestoßen, daher werde ich meine Notizen veröffentlichen. Ich verwende Win7 64bit und hatte die 32bit JRE installiert. Ich habe Eclipse 64bit heruntergeladen, das nach einer 64bit JRE sucht. Da ich die 64-Bit-JRE nicht hatte, wurde der Fehler ausgegeben, was Sinn macht. Ich ging zur manuellen Java-Installationsseite (die nicht so direkt zugänglich war, wie Sie möchten) und installierte die 64-Bit-Version. java.com/de/download/manual.jsp Das war alles was ich brauchte.
jmbertucci
2
@ Nuktu: Ich habe jmbertuccis Kommentar zur Antwort hinzugefügt
VonC
@jmbertucci: Danke für deine Notizen. Ich habe sie der Antwort hinzugefügt, um die Sichtbarkeit zu verbessern.
VonC
2
@VonC Ich musste die Datei eclipse.ini bearbeiten, um auf den richtigen Java-Pfad zu verweisen - Eclipse verwendet den Umgebungspfad überhaupt nicht, wenn es einen Wert in eclipse.ini gibt
Steve Mayne
1
@SteveMayne Interessant, danke. Ich habe Ihren Kommentar zur besseren Sichtbarkeit in die Antwort aufgenommen.
VonC
141

Kopieren Sie einfach diese Datei:

c:/Program Files/Java/jre(5,6,7..any version)/bin/javaw.exe

zum Eclipse-Ordner

* Hinweis nur für Windows getestet

Ersetzen von javaw.exe im Eclipse-Ordner

Youans
quelle
Ich habe nach einer einfachen Lösung als Antwort gesucht, aber sie hat bei mir nicht funktioniert. Falls jemand eine ähnliche Situation hat, kann es hilfreich sein , das vm-Verzeichnis in der Datei eclipse.ini zu ändern .
Noha Kareem
3
Hat bei mir nicht funktioniert, gab mir Fehler: Öffnen des Registrierungsschlüssels 'Software \ Javasoft \ Java Runtime Environment'. Ich musste den gesamten Ordner jre7 (in meinem Fall) in das Eclipse-Verzeichnis kopieren und jre umbenennen. Dann hat es funktioniert.
CuriousMarc
Wenn jemand ausfällt, versuchen Sie, den Ordner jre in den Ordner eclipse zu kopieren.
Arthur Zhixin Liu
@NohaKareem Ihr Rat war der nächste für mich. Leider enthielt mein 'jre'-Ordner nur' lib ', so dass das Kopieren über den Java-Ordner' jdk '(obwohl mit 350 MB größer, aber mit einem internen' bin'-Ordner) und das Umbenennen in 'jre' funktionierten. Vielen Dank.
Mindsect Team
Wenn sowohl 32- als auch 64-Bit-Java installiert ist, aber 32-Bit-Java im Pfad ist, schlägt der Versuch, eine 64-Bit-Eclipse zu öffnen, fehl. Wenn die 64-Bit-Java-Datei neben Ausschluss gestellt wird, funktioniert dies.
DiamondDrake
83

Alle anderen Antworten zum Einstellen nur der JAVA_HOMEsind nicht ganz richtig. Eclipse konsultiert nämlich nicht dieJAVA_HOME . Schauen Sie sich die Fehlermeldung genauer an:

... in Ihrem aktuellen Pfad

Er sagte wörtlich PATH, nicht JAVA_HOME.

Rechtsklick auf Arbeitsplatz und wählen Sie Eigenschaften (oder drücken Sie Winkey+ Pause), gehen Sie auf die Registerkarte Erweitert , klicken Sie auf die Schaltfläche Umgebungsvariablen in der Systemvariablen Liste unten wählen Path(nein, nicht Classpath ), klicken Sie auf Bearbeiten und fügen Sie ;c:\path\to\jdk\binam Ende des Wertes.

Alternativ und falls nicht vorhanden, können Sie auch JAVA_HOMEUmgebungsvariablen hinzufügen und diese in der verwenden PATH. Klicken Sie im selben Dialogfeld auf Neu und fügen Sie JAVA_HOMEmit dem Wert von hinzu c:\path\to\jdk. Dann können Sie ;%JAVA_HOME%\binam Ende den Wert der PathEinstellung hinzufügen .

BalusC
quelle
2
Es hat nicht funktioniert :) die Daten des Umgebungsnamens: Pfad --- Wert: C: \ Programme (x86) \ Java; C: \ Programme (x86) \ Java \ jdk1.6.0_14 \ bin
Wallter
1
Pfade mit Leerzeichen müssen in Anführungszeichen gesetzt werden.
BalusC
Mein Pfad war zuvor perfekt konfiguriert. Der Borland-Compiler hat das Pfadfeld bearbeitet und den Java-Pfad durch seinen eigenen Pfad ersetzt. Jetzt ist er behoben. Danke !!!
Akhil Jain
1
@BalusC Beim Konfigurieren von PATH- Umgebungsvariablen unter Windows müssen Pfade eigentlich nicht in Anführungszeichen gesetzt werden . Es reicht aus, sie nur mit Semikolon ( ;) abzugrenzen .
informatik01
Dies ist die Antwort, die es löst. Nach ein paar Stunden Durchgraben für diejenigen, die das gleiche Problem haben, benötigen Sie Folgendes: 1) Stellen Sie sicher, dass alles 64-Bit ist. Sollte automatisch in "Programmdateien" installiert werden, NICHT in "Programmdateien (x86)". 2) Schreiben Sie die -VM in den Ordner bin, den die anderen Antworten haben. 3) Stellen Sie den Pfad ein, wie dieser Typ sagte. Es wird nie etwas passieren, wenn Sie Java nicht über die Befehlszeile ausführen können. 4) freue dich
Triplebig
36

Öffnen Sie die Systemeigenschaften von Windows in der Systemsteuerung und suchen Sie den Abschnitt mit den Umgebungsvariablen:

  • Fügen Sie einen JAVA_HOME-Eintrag hinzu, der auf das Verzeichnis verweist, in dem das JDK installiert ist (z. B. C: \ Programme \ Java \ jre6).
  • Suchen Sie den Pfadeintrag und fügen Sie am Ende Folgendes hinzu:% JAVA_HOME% \ bin
  • OK die Änderungen
  • Starten Sie Eclipse neu, damit es die neue Umgebung kennt

Die meisten Java-Tools können Ihre Java-Installation jetzt entweder mithilfe der Umgebungsvariablen JAVA_HOME oder mithilfe der Umgebungsvariablen Path nach java.exe / javaw.exe suchen.

Rob Oxspring
quelle
3
Beim Hinzufügen des Namens: JAVA_HOME-Wert: "C: \ Programme (x86) \ Java \ jdk1.6.0_14;% JAVA_HOME% \ bin" wird immer noch der gleiche Fehler
angezeigt
24

Wenn Sie die 64-Bit-Version von Eclipse herunterladen; Es wird nach der 64-Bit-Version von JRE gesucht. Wenn Sie die 32-Bit-Version von Eclipse herunterladen; Es wird nach der 32-Bit-Version von JRE gesucht

Ich habe sowohl die 32- als auch die 64-Bit-Version von JRE installiert. Sie können dies von der SUN Oracle-Site erhalten. Die JAVA-Site scheint die 32-Bit-Version von Java automatisch zu installieren. Ich denke, das liegt am Webbrowser.

Speedbaron
quelle
2
Wie Ladookie sagte, war das Problem höchstwahrscheinlich, dass der Browser schlechten Code auf Javas Website
ausführte
1
Speedbaron ist hier genau richtig. Wenn Sie Ihre Umgebungsvariable PATH ändern, stellen Sie sicher, dass Sie den Pfad der richtigen Version angeben. Auf meinem Windows 7 64-Bit-System war eine 32-Bit-JRE installiert (ich weiß nicht warum), daher habe ich die 64-Bit-Version installiert und das neue Verzeichnis zu PATH hinzugefügt. Es scheint jetzt gut zu funktionieren.
musicliftsme
1
Das war mein Problem. Beachten Sie, dass Windows 64-Bit-to C:\Program Files\Javaund 32-Bit-to installiert C:\Program Files (x86)\Java.
Styfle
10

Es stellte sich heraus, dass ich nur den 'Pfad' ändern musste in:

"C: \ Windows \ system32; C: \ Windows; C: \ Windows \ System32 \ Wbem; C: \ Programme (x86) \ Java; C: \ Programme (x86) \ Java \ jdk1.6.0_14 \ bin ""

das hat es geschafft :)

Wallter
quelle
1
Übrigens sollten Sie jdk1.6.0_16 oder höher verwenden. Mit jdk 1.6.0_14 können Sie Haltepunkte in Eclipse nicht korrekt verwenden: bugs.eclipse.org/bugs/show_bug.cgi?id=279137
Csaba_H
9

Ich habe Windows 7 64-Bit, und ich hatte das gleiche Problem mit Eclipse. Damit es funktioniert, musste ich den Internet Explorer (64-Bit-Version) verwenden, um Java herunterzuladen. Dies war die einzige Möglichkeit, Java dazu zu bringen, eine 64-Bit-Version zu installieren. Als ich mit Firefox Java installiert habe, wurde automatisch eine 32-Bit-Version installiert (so idiotisch!). Und die Eclipse 64-Bit-Version würde die Java 32-Bit-Version nicht erkennen.

Ladookie
quelle
Ich habe das Problem nicht mehr - aber dies scheint eine gute Lösung zu sein und macht Sinn - es wäre interessant, dies mit anderen 64-Bit-Browsern zu testen ...
Wallter
7

Lösung auf den Punkt gebracht:

Klicken Sie mit der rechten Maustaste auf Arbeitsplatz, klicken Sie auf Eigenschaften und dann auf Erweiterte Systemeinstellungen. Ein Fenster mit Systemeigenschaften wird angezeigt. Wählen Sie auf der Registerkarte Erweitert Umgebungsvariablen aus. Das Fenster Umgebungsvariablen wird im Abschnitt Systemvariablen angezeigt. Suchen Sie nach PATHVariablen und bearbeiten Sie den Wert Ändern Sie es (die Version; jre6, jre7 usw.) in das von Ihnen verwendete jre, z. B. für meins:C:\Program Files\Java\jre7\bin

siaooo
quelle
7

Verlassen Sie sich nicht auf die Windows-Pfadvariable, da diese bei fast jedem Update geändert wird. Beispielsweise ersetzt ein Chrome-Java-Update (32 Bit auf einem 64-Bit-Computer) die systemweite 64-Bit-JVM durch eine 32-Bit-JVM. Beachten Sie auch, dass dieser Eintrag der letzte in der eclipse.ini sein muss, sonst funktioniert er nicht. Wie anders angegeben, wird die Variable JAVA_HOME NICHT von eclipse.exe ausgewertet.

Selbst wenn JAVA_HOME und Path als gültig konfiguriert sind, kann dieses Problem auftreten. Am einfachsten ist es daher, die Datei eclipse.ini in Ihrem Eclipse-Installationsordner zu öffnen

-vm

C: \ Programme \ Java \ jdk1.7.0_71 \ bin \ javaw.exe

Ersetzen Sie C: \ Programme \ Java \ jdk1.7.0_71 \ bin \ javaw.exe durch den Pfad Ihres jdk oder jre

Bogenschütze Han
quelle
Ich stimme dafür, dass diese Antwort die richtige ist. Verlassen Sie sich nicht auf die Windows-Pfadvariable, da diese bei fast jedem Update geändert wird. Beispielsweise ersetzt ein Chrome-Java-Update (32 Bit auf einem 64-Bit-Computer) die systemweite 64-Bit-JVM durch eine 32-Bit-JVM. Beachten Sie auch, dass dieser Eintrag der letzte in der eclipse.ini sein muss, sonst funktioniert er nicht. Und - wie anders angegeben - die Variable JAVA_HOME wird NICHT von eclipse.exe ausgewertet. Bitte bearbeiten Sie Ihre Antwort entsprechend.
Heri
Dies ist die beste Antwort, da sie das eigentliche Problem direkt löst. Eclipse sucht nach einem Pfad für einen bestimmten Parameter, und dieser Wert ist falsch. Durch Korrigieren des Werts wird das Problem behoben.
BuvinJ
6

In Ihrer eclipse.iniDatei müssen Sie den Pfad zur VM aktualisieren, um auf denselben Speicherort zu verweisen, an dem javaw.exeauf Ihrem Computer installiert ist.

Lavakumar Sangeetham
quelle
6

Keine Sorge, ich war auch durch diesen Fehler ruiniert und fatal und als ich ihn bekam, war ich so frustriert, dass ich sogar eine Android-Programmierung hinterlassen wollte, aber ich bekam ihn. Kopieren Sie einfach zuerst diesen Code und fügen Sie ihn in Ihre Systemvariable ein Unter Pfad ...

C: \ Programme; C: \ Winnt; C: \ Winnt \ System32; C: \ Programme \ Java \ jre6 \ bin \ javaw.exe

Kopieren Sie nun den Ordner "jre" von Ihrem Pfad, als hätte ich "jre" unter diesem Pfad

            C:\Program Files\Java

und in Ihren Eclipse-Ordner einfügen bedeutet, wo sich Ihre eclipse.exe-Datei befindet. als hätte ich meine Eclipse an diesem Ort eingerichtet

    F:\Softwares\LANGUAGES SOFTEARE\Android Setup\eclipse

Fügen Sie also im Eclipse-Ordner den Ordner "jre" ein. Wenn Sie "jre6" haben, benennen Sie es in "jre" um .... und führen Sie Ihre Eclipse aus, Sie haben die Lösung ...

   //<<<<<<<<<<<<<<----------------------------->>>>>>>>>>>>>>>>>>>                 

ANDERE LÖSUNG: 2

Wenn das Problem mit den oben genannten Schritten nicht gelöst werden konnte, befolgen Sie diese Schritte

  1. Kopieren Sie den Ordner "jre" aus Ihrem Java-Pfad wie C: \ Programme \ Java \ jre6 * usw. und fügen Sie ihn in Ihr Eclipse-Verzeichnis ein (Wo ist Ihre Eclipse verfügbar?)
  2. Gehen Sie zur Datei eclipse.ini und öffnen Sie sie.
  3. Ändern Sie das Verzeichnis Ihrer Datei javaw.exe wie folgt

-vmF: \ Software \ LANGUAGES SOFTEARE \ Android Setup \ Eclipse Indigo Version 32 Bit \ jre \ bin / javaw.exe

Wenn Sie diesmal Eclipse starten, wird nach javaw.exe gesucht, sodass der Pfad in der Datei eclipse.ini durchsucht wird, da er sich jetzt im selben Ordner befindet. Die Datei javaw.exe wird gestartet und die Arbeit beginnt .

Wenn Sie noch Fragen haben, können Sie diese erneut stellen. Gehen Sie einfach auf mein Profil und finden Sie meine E-Mail-ID heraus. weil ich das Stack Overflow Forum liebe und es mich zum Programmierer gemacht hat. *

Pir Fahim Shah
quelle
5

Ich habe meine Datei eclipse.ini bearbeitet, um das neu aktualisierte JDK zu aktualisieren. Zuvor hatte ich jdk1.7.0_09 und jetzt auf jdk1.7.0_80 aktualisiert und Eclipse warf diesen Fehler.

Zum Ausführen von Eclipse muss eine Java Runtime Environment (JRE) oder ein Java Development Kit (JDK) verfügbar sein. Nach dem Durchsuchen der folgenden Speicherorte wurde keine virtuelle Java-Maschine gefunden: C: / Programme / Java / jdk1.7.0_09 / bin / javaw

Nach dem Aktualisieren von eclipse.ini von,

-vm
C:/Program Files/Java/jdk1.7.0_09/bin/javaw

zu

-vm
C:/Program Files/Java/jdk1.7.0_80/bin/javaw

Eclipse funktioniert gut.

Glücklich
quelle
1
Dies ist die Lösung, die für mich funktioniert hat - danke Lucky. Eclipse lädt die JRE, auf die in der INI-Datei verwiesen wird, sodass die akzeptierte Antwort falsch ist, wenn sie den env-Pfad anzeigt.
Steve Mayne
3

Wenn nach dem Hinzufügen der Variablen C: \ Programme \ Java \ jdk1.8.0_92 \ bin in PATH in Umgebungsvariablen die Eclipse denselben Fehler ausgegeben hat

Überprüfen Sie die Eclipse-Konfigurationseinstellungsdatei, die sich im Eclipse-Ordner befindet. Sie müssen denselben JDK-Pfad sehen, den Sie in C: \ Programme haben

Geben Sie hier die Bildbeschreibung ein

Ich hoffe es hilft.

Abdelrahman Elattar
quelle
2

Als ich ein solches Problem hatte, hatte ich in meinem Fall x64 JDK + JRE mit x86 Eclipse installiert. Die Installation von x86 JDK + JRE hat mein Problem gelöst :) Außerdem habe ich einen jreOrdner im Eclipse-Ordner erstellt und den binOrdner von meinem lokalen Pfad C:\Program Files (x86)\Java\jre7nach kopiert ..\eclipse\jre\.

Igor Lozovsky
quelle
2
  • 64-Bit-Betriebssystem -> Sie benötigen: 64-Bit-Java und 64-Bit-Eclipse
  • 32-Bit-Betriebssystem -> Sie benötigen: 32-Bit-Java und 32-Bit-Eclipse

Wenn Sie Ihre Java-Version mit der Standardaktualisierung auf Ihrem 64-Bit-Computer aktualisieren (und einen 32-Bit-Browser haben ), installiert Java die 32-Bit-Version. Sie sollten eine 64-Bit-Java-Version finden und installieren.

İlker Elçora
quelle
1

Ich hatte letzte Woche einen Kollegen mit genau diesem Problem. Er hat das Problem behoben, indem er die x64-Version von Eclipse und das x64-JDK installiert hat.

Bearbeiten: Er hat seinen alten Arbeitsbereich nach der Installation der erforderlichen Plugins wiederverwendet, sodass dies kein großes Problem darstellen sollte

Laura
quelle
1

Es gibt einen einfacheren Weg, dies zu tun. Führen Sie einfach cmd x64 aus. Geben Sie cmd x64 in die Suchleiste im Startmenü ein und Sie werden es finden :) Alternativ können Sie den Pfad zu Programmdateien (x86) festlegen ... Zum Beispiel C: \ Programme (x86) \ Java \ jre6

Deividas M.
quelle
1

Fügen Sie einfach den JRE-PFAD FÜR Beispiel: C: \ Programme \ Java \ jre5 \ bin in die Umgebungsvariable Put ";" zwischen jedem Pfad. Dann klicken Sie auf die eclipse.exe. Es wird funktionieren .....

karthik
quelle
1

Der Grund für diesen Fehler ist, dass Eclipse zum Starten eine JRE benötigt, die nicht gefunden werden kann. Der erste Ort, an dem gesucht wird, ist das aktuelle Verzeichnis, dann die Datei eclipse.ini und schließlich der Systempfad. Wenn das Gerät an keiner dieser drei Stellen das richtige JVM findet (Bit-Versionen sind unterschiedlich), wird es in Krippen geschrieben

Die empfohlene Methode besteht darin, die Datei eclipse.ini zu bearbeiten und eclipse mitzuteilen, wo genau nach vm / jre gesucht werden soll, indem diese Zeile in die Datei aufgenommen wird:

-vm
[Pfad zu Ihrer java.exe] (befindet sich im Allgemeinen unter "C: \ Programme \ Java \ jre7 \ bin")

PS Um die eclipse.ini zu bearbeiten, müssen Sie sie möglicherweise verschieben, bearbeiten und dann wieder einfügen

Quelle: - Wiki

user1995120
quelle
1

Zunächst einmal vielen Dank an YouYou für seine Lösung! Ich habe versucht, von YouYou zu antworten ( https://stackoverflow.com/a/14464653/801919 ). Anfangs hat es bei mir nicht funktioniert. Im Folgenden sind die Schritte aufgeführt, die ich ausführen musste, damit es funktioniert:

  1. Anfangs hatte ich Java nicht auf meinem neuen Computer installiert. Also musste ich das installieren (heruntergeladen von: http://java.com/en/download/manual.jsp ).
  2. Ich verwende ein 64-Bit-Betriebssystem. Beim Herunterladen erhielt ich jedoch die Meldung, die mir bei der Auswahl der herunterzuladenden Java-Version helfen könnte:Choose the 32-bit download to use with a 32-bit browser. Daher habe ich die 32-Bit-Version heruntergeladen.
  3. Dann folgte ich dem unter https://stackoverflow.com/a/14464653/801919 genannten Verfahren und hoffte, die Lösung zu erhalten.
  4. Ich habe einen anderen Fehler erhalten: Java was started but returned exit code=13
  5. Dann habe ich die 64-Bit-Version von Java installiert.
  6. javaw.exeVon dieser Version kopiert .

... und Eclipse fing an zu arbeiten !!! Ja!

Vikram
quelle
1

Nun, diese Antwort ist für diejenigen, die alle anderen ausprobiert haben und immer noch kein Glück haben. Möge dies ein Android-Studio sein oder Eclipseich mache das normalerweise, wenn alles andere fehlschlägt.

  1. Suchen Sie Ihren Android SDK-Ordner und öffnen Sie die Datei android.bat mit einem Texteditor
  2. Sie finden einige Befehle wie diese am Anfang der Datei.

set java_exe=

call lib\find_java.bat

if not defined java_exe goto :EOF

  1. Ändern Sie sie in

    set java_exe=< der Pfad zu Ihrer java.exe-Datei (befindet sich in Ihrem jdk-Ordner / bin-Verzeichnis) >

  2. finde die Zeilen

rem Set SWT.Jar path based on current architecture (x86 or x86_64) for /f "delims=" %%a in ('"%java_exe%" -jar lib\archquery.jar') do set swt_path=lib\%%a

  1. Ersetzen Sie es durch set swt_path=< den Pfad zu Ihrer jeweiligen swt.jar-Datei, für x86 unter sdk \ tools \ lib \ x86 und für x64 unter sdk \ tools \ lib \ x86_64 >
  2. Speichern und schließen Sie die Datei und jetzt können Sie loslegen.
Schlaflosigkeit
quelle
1

Versuchen Sie, Ihr JAVA_HOME auf den richtigen Ordner einzustellen. Google zum Festlegen von Umgebungsvariablen in Windows.

Topher Fangio
quelle
Ich habe diese Anweisungen befolgt : wso2.org/project/wsas/java/2.0-beta/docs/setting-java-home.html, aber ohne Erfolg
Wallter
Ich hasse es, es zu sagen ... aber hast du neu gestartet?
Topher Fangio
Ein Neustart ist nicht erforderlich, um Java zu installieren.
Thorbjørn Ravn Andersen
1
JAVA_HOME ist auch nicht notwendig. Es ist der PFAD, mit dem die Datei javaw.exe gefunden wird. (JAVA_HOME wird von einigen anderen Anwendungen wie ant verwendet, daher ist es sowieso nicht falsch, es
einzustellen
1

Ich bin auch auf dieses Problem gestoßen. Mein Fall ist wie folgt:

Geben Sie hier die Bildbeschreibung ein Geben Sie hier die Bildbeschreibung ein

Im Text:

HKEY_CURRENT_USER\Environment
    Path    REG_SZ    %JAVA_HOME%\bin;C:\ProgramFiles\nodejs

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
    JAVA_HOME    REG_SZ    C:\ProgramFiles\Java\jdk
    Path    REG_EXPAND_SZ    C:\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\
WindowsPowerShell\v1.0\;C:\Program Files\Intel\DMIX;c:\Program Files (x86)\Microsoft SQL Server\90\Tools\binn\;C:\Progra
m Files (x86)\Perforce;C:\ProgramFiles\010 Editor;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\ProgramFiles\
Git\cmd;C:\Program Files (x86)\Skype\Phone\

C:\Users\ssfang> echo %^JAVA_HOME% = "%^JAVA_HOME%" = %%JAVA_HOME%% %JAVA_HOME%
%JAVA_HOME% = "%^JAVA_HOME%" = %C:\ProgramFiles\Java\jdk% C:\ProgramFiles\Java\jdk

Ich habe festgestellt, dass die Typen des Registrierungswerts Pathunterschiedlich sind, und habe daher mit dem folgenden Befehl überprüft, ob der Pfad gültig ist oder nicht:

C:\Users\ssfang> where node java
C:\ProgramFiles\nodejs\node.exe
INFO: Could not find "java".

Infolgedessen setze ich die lokale Umgebung (aktueller Benutzer) mit den folgenden Befehlen ( Setx ) zurück:

C:\Users\ssfang> setx PATH %^JAVA_HOME%\bin;"C:\ProgramFiles\nodejs"

SUCCESS: Specified value was saved.

C:\Users\ssfang> reg query HKEY_CURRENT_USER\Environment /v Path

HKEY_CURRENT_USER\Environment
    Path    REG_EXPAND_SZ    %JAVA_HOME%\bin;C:\ProgramFiles\nodejs

C:\Users\ssfang> where node java
C:\ProgramFiles\nodejs\node.exe
INFO: Could not find "java".

C:\Users\ssfang>echo %PATH%
C:\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Fi
les\Intel\DMIX;c:\Program Files (x86)\Microsoft SQL Server\90\Tools\binn\;C:\Program Files (x86)\Perforce;C:\ProgramFile
s\010 Editor;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\ProgramFiles\Git\cmd;C:\Program Files (x86)\Skype\
Phone\;%JAVA_HOME%\bin;C:\ProgramFiles\nodejs

Im aktuellen Prozess können diese Änderungen jedoch nicht auf andere laufende Prozesse übertragen werden.

Wenn Sie jedoch Benutzerumgebungsvariablen direkt im Registrierungseditor ändern,

Diese Änderungen an den Umgebungsvariablen führen nicht zu einer sofortigen Änderung. Wenn Sie beispielsweise nach dem Vornehmen der Änderungen eine weitere Eingabeaufforderung starten, spiegeln die Umgebungsvariablen die vorherigen (nicht die aktuellen) Werte wider. Die Änderungen werden erst wirksam, wenn Sie sich abmelden und dann wieder anmelden.

Um diese Änderungen zu bewirken, ohne sich abmelden zu müssen, senden Sie eine WM_SETTINGCHANGE-Nachricht an alle Fenster im System, damit alle interessierten Anwendungen (wie Windows Explorer, Programmmanager, Task-Manager, Systemsteuerung usw.) ein Update durchführen können.

Weitere Informationen finden Sie unter Weitergeben von Umgebungsvariablen an das System

Hier gebe ich ein Powershell-Skript, um es zu tun:

# powershell -ExecutionPolicy ByPass -File
# Standard, inline approach: (i.e. behaviour you'd get when using & in Linux)
# START /B CMD /C CALL "foo.bat" [args [...]]
# powershell -ExecutionPolicy ByPass -WindowStyle Hidden -File myScript.ps1 


<#
Add-Type @'

public class CSharp
{
    public static void Method(object[] first, object[] second)
    {
        System.Console.WriteLine("Hello world");
    }
}
'@
$a = 1..4;
[string[]]$b = "a","b","c","d";
[CSharp]::Method($a, $b);
#>


<#

#http://stackoverflow.com/questions/16552801/how-do-i-conditionally-add-a-class-with-add-type-typedefinition-if-it-isnt-add

#Problem Add-Type : Cannot add type. The type name 'PInvoke.User32' already exists.

if (-not ("MyClass" -as [type])) {
    add-type @"
    public class MyClass { }
"@
}


p.s. there's no Remove-Type; see this answer for more on how to best work around this limitation:
http://stackoverflow.com/questions/3369662/can-you-remove-an-add-ed-type-in-powershell-again

I think it will be wanted when debugging.
It is much simpler to close a tab in Console and open new one in PowerShell_ISE.exe or close PowerShell.exe.

Or

Start-Job -ScriptBlock {
    param([uri]$url,$OutputDir)
    # download and save pages
    Invoke-RestMethod $url | Out-File "$OutputDir\$($url.Segments[-1])" -Force
} -ArgumentList $link,$OutputDir

#>
if (-not ([System.Management.Automation.PSTypeName]'PInvoke.Program').Type)
{
    $sig=@"
using System;
using System.Runtime.InteropServices;
using System.Text;
using System.Collections.Generic;

// The global namespace is the "root" namespace: global::system will always refer to the .NET Framework namespace System.

///P/Invoke (Platform Invoke)
namespace PInvoke
{
    public static class User32
    {
        /// http://www.pinvoke.net/default.aspx/Constants/HWND.html
        // public const IntPtr HWND_BROADCAST = new IntPtr(0xffff);
        /// https://msdn.microsoft.com/en-us/library/windows/desktop/ms725497(v=vs.85).aspx
        /// http://www.pinvoke.net/default.aspx/Constants/WM.html
        public const UInt32 WM_SETTINGCHANGE = 0x001A;

        // SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, 0,    (LPARAM) "Environment", SMTO_ABORTIFHUNG,    5000, &dwReturnValue);

        /// https://msdn.microsoft.com/en-us/library/windows/desktop/ms644952(v=vs.85).aspx
        /// If the function succeeds, the return value is nonzero. 
        [System.Runtime.InteropServices.DllImport("user32.dll", EntryPoint = "SendMessageTimeout", SetLastError = true)]
        public static extern uint SendMessageTimeout(IntPtr hWnd, uint Msg, int wParam, string lParam, SendMessageTimeoutFlags fuFlags, uint uTimeout, out int lpdwResult);
    }

    [Flags]
    public enum SendMessageTimeoutFlags : uint
    {
        SMTO_NORMAL = 0x0,
        SMTO_BLOCK = 0x1,
        SMTO_ABORTIFHUNG = 0x2,
        SMTO_NOTIMEOUTIFNOTHUNG = 0x8,
        SMTO_ERRORONEXIT = 0x20
    }

    public class Program
    {
        public static void Main(string[] args)
        {
            //int innerPinvokeResult;
            //uint pinvokeResult = User32.SendMessageTimeout(User32.HWND_BROADCAST, User32.WM_SETTINGCHANGE, 0, "Environment", SendMessageTimeoutFlags.SMTO_NORMAL, 1000, out innerPinvokeResult);
            Console.WriteLine("Over!!!!!!!!!!!!!!!!!!!!!!!!!");
        }
    }
}
"@

    Add-Type -TypeDefinition $sig
}


## [PInvoke.Program]::Main([IntPtr]::Zero);

$innerPinvokeResult=[int]0
[PInvoke.User32]::SendMessageTimeout([IntPtr]0xffff, [PInvoke.User32]::WM_SETTINGCHANGE, 0, "Environment", [PInvoke.SendMessageTimeoutFlags]::SMTO_NORMAL, 1000, [ref]$innerPinvokeResult);

Setx setx [/ s [/ u [] [/ p []]] [/ m]

/m Specifies to set the variable in the system environment. The default setting is the local environment
samm
quelle
0

Überprüfen Sie Fenster> Einstellungen> Java> Installierte JREs. Stellen Sie sicher, dass dort etwas ist. Wenn dies nicht der Fall ist, fügen Sie eine hinzu.

Haben Sie kürzlich Ihr JDK aktualisiert?

Drew Wills
quelle
Ja, ich habe versucht, das Android-Add-On hinzuzufügen. Aber nein (wie Topher Fangio sagte), ich kann Eclipse jetzt nicht starten.
Wallter
0

Das JDK installiert keine JVM im Standardpfad.

Sofern Sie keine externen Tools benötigen, um wie ant ausgeführt zu werden, reicht das Nicht-JDK aus, damit Eclipse ausgeführt werden kann. Der einfachste Weg, eine solche JVM zu installieren, ist http://java.com installieren, was auch immer installiert werden soll.

Doppelklicken Sie dann erneut auf die Eclipse-Binärdatei.

Thorbjørn Ravn Andersen
quelle
Ich habe es ohne Erfolg neu installiert (es wurde sogar gefragt, ob ich es neu installieren möchte). (Ich habe sowohl das Google Chrome Plugin 14 - oder so ähnlich && den Firefox)
Wallter
Du bist zu java.com gegangen? Nicht javasoft.com?
Thorbjørn Ravn Andersen
0

Setzen Sie die Variable JAVA_HOME und ad JAVA_HOME / bin auf die Variable evnrionment path.

Wissenschaft
quelle
wie folgt: "C: \ Programme (x86) \ Java; C: \ Programme (x86) \ Java \ jdk1.6.0_14 \ bin"? - Es hat immer noch nicht funktioniert :)
Wallter
Um auf JAVA_HOME in der Pfadvariablen zu verweisen, muss es eingebettet werden:% JAVA_HOME% \ bin
Heri
Für mich (Windows 10 64 Bit + Eclipse 4.10) bestand der Trick darin, zusätzlich zur JAVA_HOMEUmgebungsvariablen die Variable hinzuzufügen, JRE_HOMEdie auf den Speicherort des javaw.exeSpeicherorts festgelegt wurde (der wahrscheinlich immer der bin-Ordner des installierten JDK ist ).
Guy Avraham
0

Ich hatte das gleiche Problem (Windows 7 x64, 64-Bit-JDK, 32-Bit-Eclipse) und fand zwei Lösungen:

  • Installieren Sie die 64-Bit-Version von Eclipse (durch Klicken auf die Registerkarte "Development Builds" auf der Downloadseite gefunden.)
  • Installieren Sie die 32-Bit-Version des JDK.
Tim
quelle
Sehen Sie, aber Sie haben Windows 7 x86 verwendet, wo ich x64 verwendet habe - wie andere angegeben haben, war dieses Problem möglicherweise ein Problem für SUN bei der Programmierung, wie ihre Webseite Sie erkennt (dh x64 oder x86) sollte verwenden
Wallter
Korrektur, ich benutzte Windows 7 x64
Tim
0

Ich hatte das gleiche Problem. Die einfache Möglichkeit, dies zu beheben, bestand darin, sowohl die JRE als auch die Eclipse als x86 oder x64 zu installieren. Wenn ihr Bittyp nicht übereinstimmte, konnte Eclipse ihn nicht finden. Wenn es für Sie also keine große Sache ist, zu deinstallieren und neu zu installieren, damit sie übereinstimmen, würde ich das tun.

Am Ende habe ich Folgendes installiert: Java Runtime Environment 1.7.0.3 (64-Bit) und Eclipse Indigo (3.7) (64-Bit)

Dann funktioniert es einfach.

Loren C Fortner
quelle
0

Wenn ich nur javaw kopiert habe, ist der zweite Fehler aufgetreten, es gibt keine java.dll-Datei. Wenn ich sie auch kopiert habe, wurde Eclipse nicht gestartet. Ich habe den gesamten JDK-Ordner in den Eclipse-Ordner kopiert und die ID in JRE umbenannt. Problem gelöst.

Matej Šípka
quelle