Ich ging zu den Umgebungsvariablen in 'System' in der Systemsteuerung und machte zwei neue Variablen, eine für Benutzervariablen und eine für Systemvariablen. Beide hießen Java_HOME und zeigten auf
C:\Sun\SDK\jdk\bin
Aber aus irgendeinem Grund wird immer noch die folgende Fehlermeldung angezeigt, wenn ein Java -Befehl ausgeführt wird ...
BUILD FAILED
C:\Users\Derek\Desktop\Eclipse\eclipse\glassfish\setup.xml:161: The following error occurred while executing this line:
C:\Users\Derek\Desktop\Eclipse\eclipse\glassfish\setup.xml:141: The following error occurred while executing this line:
C:\Users\Derek\Desktop\Eclipse\eclipse\glassfish\setup.xml:137: Please set Java.home to a JDK installation
Total time: 1 second
C:\Users\Derek\Desktop\Eclipse\eclipse\glassfish>lib\ant\bin\ant -f setup.xml
Unable to locate tools.jar. Expected to find it in C:\Program Files\Java\jre6\lib\tools.jar
Buildfile: setup.xml
Wie kann ich dieses Problem beheben?
JDK-Installationsverzeichnis suchen
Zunächst müssen Sie den Installationspfad für das Java Development Kit kennen.
Öffnen Sie den Standardinstallationspfad für das JDK:
C:\Program Files\Java
Es sollte ein Unterverzeichnis geben wie:
C:\Program Files\Java\jdk1.8.0_172
Hinweis: man muss am Ende nur noch den Pfad zum jdk ohne/bin setzen (wie an vielen Stellen vorgeschlagen). z.B. C:\Java\jdk1.8.0_172 und NICHT C:\Java\jdk1.8.0_172\bin!
Setzen Sie die Java_HOME-Variable
Sobald Sie den JDK-Installationspfad haben:
Hinweis: Möglicherweise müssen Sie Windows neu starten
Der vollständige Artikel befindet sich hier in meinem Blog: Java_HOME-Variable in Windows einstellen .
Was für mich funktionierte, war das Hinzufügen des %Java_HOME%\bin
zur Umgebungsvariablen Path, wobei die Umgebungsvariable Java_HOME
auf den Ordner jdk
zeigte.
Sie müssen zuerst JDK installieren in Ihrem System.
Setze Java Home
Java_HOME = C:\Programme\Java\jdk1.7.0 [Speicherort Ihres JDK-Installationsverzeichnisses ]
Sobald Sie den JDK-Installationspfad haben:
Setzen Sie unter Systemvariable Java Path
PATH = C:\Programme\Java\jdk1.7.0; [Wert mit Semikolon anhängen]
In cmd (vorübergehend für dieses cmd-Fenster):
set Java_HOME="C:\\....\Java\jdk1.x.y_zz"
echo %Java_HOME%
set PATH=%PATH%;%Java_HOME%\bin
echo %PATH%
http://javahowto.blogspot.com/2006/05/javahome-vs-javahome.html
Klicken Sie in der Systemsteuerung> Java, Registerkarte Java auf die Schaltfläche Ansicht. Geben Sie in den Laufzeitparametern Folgendes ein:
-Djava.home=YOUR_PATH_HERE
Oder wenn Sie Java ausführen, können Sie diesen Befehlszeilenschalter zum Befehl hinzufügen:
Java -Djava.home=PATH SomeJavaApp
Sie müssen den Wert auf C:\Sun\SDK\jdk
setzen (vorausgesetzt, das JDK ist dort installiert - dies ist nicht die Standardeinstellung). - Legen Sie den\bin-Wert nicht in C:\Sun\SDK\jdk\bin
.
Wenn Ihre App nur ausgeführt wird, wenn Sie als aktueller Benutzer angemeldet sind, fügen Sie sie in die Benutzervariablen ein. Wenn sie für alle Benutzer auf Ihrem System ausgeführt werden muss, fügen Sie sie in die Systemvariablen ein.
Möglicherweise müssen Sie auch %Java_HOME%\bin
zum Pfad hinzufügen. (Dies hängt auch davon ab, ob Sie es nur vom Benutzer oder von allen Benutzern, einschließlich System, ausführen.)
Für diejenigen, die immer noch mit diesem Problem konfrontiert sind (ich habe alle oben genannten Vorschläge ausprobiert) -
Wenn Sie eine 64-Bit-Version von Windows verwenden und das 32-Bit-JDK installiert haben, müssen Sie neben dem Anpassen der Variablen PATH
möglicherweise auch die Variablen Registrierung anpassen.
Ich habe mir die Haare ausgezogen, meine PATH
-Variablen korrekt gesetzt - immer noch ohne Erfolg - und dann nur "frei" Java -Einträge in meiner Registrierung gefunden, was anscheinend ein Deadend für die Behebung des "Aussetzers" war "Java Laufzeitumgebung.
Durch die Verwendung von Process Monitor
, um das Programm zu sehen, das ich gestartet habe, um herauszufinden, wo es in der Registrierung nach Java (Runtime Environment) gesucht hat, habe ich triumphierend festgestellt, dass es in - gesucht hat. 2-Bit Version der Registrierungseinträge in HKEY_LOCAL_MACHINE\SOFTWARE\**Wow6432Node**\JavaSoft\Java Runtime Environment
.
In diesem Schlüssel sollten Unterschlüssel verschiedener Java -Versionen (früher und/oder heute) installiert sein. Klicken Sie auf den Unterschlüssel der neuesten Version (mein Unterschlüssel ist derzeit beispielsweise 1.7.0_25). Nachdem Sie auf diesen Unterschlüssel geklickt haben, werden rechts die Registrierungszeichenfolgenwerte aufgeführt, insbesondere JavaHome
und RuntimeLib
. Sie müssen die Werte dieser beiden Werte ändern, um sowohl den Ordner current als auch die Datei jvm.dll wiederzugeben.
In meinem Fall wurden die Werte beispielsweise (zuvor) auf C:\Program Files (x86)\Java\jre7
und C:\Program Files (x86)\Java\jre7\bin\client\jvm.dll
gesetzt, die auf meinem Computer nicht vorhanden sind. Ich musste diese auf den aktuellen Ordner und die aktuelle Datei von C:\Program Files (x86)\Java\jdk1.7.0_25\jre
und C:\Program Files (x86)\Java\jdk1.7.0_25\jre\bin\client\jvm.dll
aktualisieren.
Dies hängt wiederum ganz davon ab, welche Version von Java (JDK und/oder JRE) Sie installiert haben - 32 oder 64-Bit - und auf welchem Betriebssystem Sie sich befinden - 32 oder 64 -bisschen. Sie müssen lediglich wissen, dass sie sich an verschiedenen Stellen in der Registrierung befinden (z. B. beim Wow6432Node
für 32-Bit-Anwendungen, in meinem Fall mit dem auf einem 64-Bit-Computer installierten 32-Bit-JDK).
Nachdem ich diese beiden Registrierungswerte aktualisiert habe, läuft mein Programm fehlerfrei, ohne weitere Probleme oder Beschwerden über eine fehlende Java Laufzeitumgebung (die aus der Registrierung stammt).
Dies ist die offizielle Lösung zum Einstellen der Java-Umgebung von www.Java.com - hier .
Es gibt Lösungen für Windows 7, Windows Vista, Windows XP, Linux/Solaris und andere Shells.
Windows 7
- Wählen Sie Computer aus dem Startmenü
- Wählen Sie im Kontextmenü Systemeigenschaften
- Klicken Sie auf Erweiterte Systemeinstellungen -> Registerkarte Erweitert
- Klicken Sie unter Systemvariablen auf Umgebungsvariablen, suchen Sie PATH und klicken Sie darauf.
- Ändern Sie in den Bearbeitungsfenstern PATH, indem Sie die Position der Klasse zum Wert für PATH hinzufügen. Wenn Sie nicht über das Element PATH verfügen, können Sie eine neue Variable hinzufügen und PATH als Namen und die Position der Klasse als Wert hinzufügen.
- Öffnen Sie das Eingabeaufforderungsfenster erneut und führen Sie den Java Code aus.
Wechseln Sie mit dem Explorer zu Systemsteuerung\Alle Systemsteuerungselemente\Benutzerkonten (nicht Internet Explorer!)
oder
Ändere meine Umgebungsvariablen
Neu ...
(Wenn Sie nicht über die erforderlichen Berechtigungen verfügen, um sie im Abschnitt Systemvariablen hinzuzufügen, fügen Sie sie dem Abschnitt Benutzervariablen hinzu.)
Fügen Sie Java_HOME als Variablennamen und den JDK-Speicherort als Variablenwert hinzu> OK
Test:
set Java_HOME
Java_HOME=C:\Program Files\Java\jdk1.8.0_60
gehe zu Mycomputer (This PC) -> Rechtsklick -> Eigenschaften auswählen -> Erweiterte Systemeinstellungen -> Umgebungsvariablen -> in Systemvariablen klicke auf "Ne" und schreibe - Java_HOME in Variablenname und Pfad C:\Programme\Java\jdk1.8.0_131, wenn jdk in Variablenwert vorhanden ist-> Klicken Sie auf OK.
schließen Sie den Befehl Prompt und öffnen Sie ihn erneut, nachdem Sie Java_HOME festgelegt haben. Manchmal werden Änderungen in der Cmd, die vor dem Festlegen von Java_HOME geöffnet wurde, nicht berücksichtigt.
sie können Java_HOME auch über das Terminal selbst festlegen: SET Java_HOME = "C:\Programme (x86)\Java\jdk1.8.0_131"
Wir müssen zwischen den beiden Umgebungsvariablen unterscheiden, die hier austauschbar behandelt werden. Eine davon ist die Variable Java_HOME. Das andere ist die Variable Path. Jeder Prozess, der auf die Variable Java_HOME verweist, sucht nach dem Suchpfad zum JDK und nicht zur JRE. Die Verwendung der Variablen Java_HOME ist nicht für den Compiler Java selbst vorgesehen. Der Compiler kennt seinen eigenen Standort. Die Variable ist für andere Software gedacht, um den Compiler leichter zu finden. Diese Variable wird normalerweise von der Software IDE verwendet, um Anwendungen aus dem Quellcode Java zu kompilieren und zu erstellen. Im Gegensatz dazu verweisen der Windows CMD-Interpreter und viele andere Programme von Erst- und Drittanbietern auf die Variable Path und nicht auf die Variable Java_HOME.
Anwendungsfall 1: Kompilieren aus CMD
Wenn Sie beispielsweise keine IDE - Software verwenden und nur in der Lage sein möchten, unabhängig von Ihrem aktuellen Arbeitsverzeichnis aus der CMD zu kompilieren, müssen Sie die Pfadvariable korrekt festlegen . In Ihrem Fall benötigen Sie nicht einmal die Variable Java_HOME. Da CMD Path verwendet, wird der Compiler Java nicht von Java_HOME gefunden.
Anwendungsfall 2: Kompilieren aus IDE
Wenn Sie jedoch eine IDE Software verwenden , müssen Sie sich zunächst die Dokumentation ansehen. Möglicherweise muss Java_HOME festgelegt werden, es kann jedoch auch ein anderer Variablenname für denselben Zweck verwendet werden. Der De-facto-Standard über die Jahre war Java_HOME, aber dies ist möglicherweise nicht immer der Fall.
Anwendungsfall 3: Kompilieren aus IDE und CMD
Wenn Sie neben der Software IDE auch in der Lage sein möchten, unabhängig von Ihrem aktuellen Arbeitsverzeichnis aus dem CMD zu kompilieren, dann fügen Sie zum Java_HOME hinzu Variable Möglicherweise müssen Sie auch den JDK-Suchpfad an die Pfadvariable anhängen.
Java_HOME vs. Path
Wenn sich Ihr Problem auf das Kompilieren von Java bezieht, möchten Sie die Variable Java_HOME und den Pfad (falls zutreffend) überprüfen. Wenn Ihr Problem mit dem Ausführen von Java -Anwendungen zusammenhängt, möchten Sie Ihre Pfadvariable überprüfen.
Die Pfadvariable wird universell für alle Betriebssysteme verwendet. Weil es vom System definiert wird und weil es die Standardvariable ist, die zum Auffinden der JRE verwendet wird, gibt es fast nie Probleme beim Ausführen von Java -Anwendungen. Vor allem nicht unter Windows, wo die Software-Installer normalerweise alles für Sie einrichten. Wenn Sie jedoch manuell installieren, ist es möglicherweise am sichersten, die Variable Java_HOME insgesamt zu überspringen und die Variable Path für alles zu verwenden, sowohl für JDK als auch für JRE. Jede neuere Version einer IDE Software sollte dies aufnehmen und verwenden können.
Symlinks
Symbolische Links bieten möglicherweise eine weitere Möglichkeit, auf den JDK-Suchpfad zu verweisen, indem eine der vorhandenen Umgebungsvariablen gepackt wird.
Ich bin mir bei früheren Versionen von Oracle/Sun JDK/JRE nicht sicher, aber das Installationsprogramm für jdk1.8.0_74 hängt den Suchpfad C:\ProgramData\Oracle\Java\javapath
an die Pfadvariable und es setzt es am Anfang des Zeichenkettenwertes. Dieses Verzeichnis enthält symbolische Links zu Java.exe, javaw.exe und javaws.exe im JRE-Verzeichnis.
Zumindest mit dem JDK Java 8 und vermutlich mit dem eigenständigen JRE Java 8 muss für das JRE keine Konfiguration von Umgebungsvariablen vorgenommen werden. Solange Sie das Installationspaket verwenden, um es einzurichten. Es können jedoch Unterschiede in Ihrer Windows-Installation auftreten. Beachten Sie, dass die Oracle-JRE im JDK-Paket enthalten ist.
Wenn Sie jemals feststellen, dass Ihre JDK-Konfiguration Java die falsche Version des Compilers verwendet, oder wenn sie magisch zu funktionieren scheint, ohne dies explizit zu definieren (ohne den Zauber zu sprechen), haben Sie möglicherweise eine Symlink irgendwo in Ihrer Umgebung Variablen. Vielleicht möchten Sie nach Symlinks suchen.
Wenn Sie Ihr Java -Verzeichnis zu Ihrer PATH
-Variablen hinzufügen, möchten Sie es möglicherweise an den Anfang setzen. Ich hatte das Problem, dass das Java -Verzeichnis am Ende des PATH
nicht funktioniert. Nach der Überprüfung habe ich Java.exe
in meinem Windows\System32
-Verzeichnis gefunden und es sieht so aus, als würde das erste gewonnen, wenn sich mehrere Dateien mit demselben Namen in Ihrem PATH
befinden ...
In Eclipse: Window->Preferences->Java->Installed JREs
Verwenden Sie die Suchfunktion, um sicherzustellen, dass Ihre neueste Java Installation aufgelistet ist. Stellen Sie dann sicher, dass es das ist, das überprüft wird. Dies sollte ein JDK sein, kein JRE.
Führen Sie Eclipse als Administrator aus.
Das hat mein Problem gelöst. Ich grabe immer noch nach der Logik dahinter.
wenn Sie Ihren Computer nach der Installation von jdk nicht neu gestartet haben, starten Sie einfach Ihren Computer neu.
wenn Sie einen portablen Java erstellen und den Pfad festlegen möchten, bevor Sie Java verwenden, erstellen Sie einfach einen Stapel Datei, die ich unten erklärte.
wenn Sie diese Batchdatei beim Starten Ihres Computers ausführen möchten, legen Sie die Verknüpfung zu Ihrer Batchdatei im Startordner ab. In Windows 7 Startordner ist "C:\Benutzer\Benutzer\AppData\Roaming\Microsoft\Windows\Startmenü\Programme\Start"
erstellen Sie eine Batch-Datei wie folgt:
set Java_Home=C:\Program Files\Java\jdk1.8.0_11
set PATH=%PATH%;C:\Program Files\Java\jdk1.8.0_11\bin
hinweis: Java_home
und path
sind Variablen. Sie können eine beliebige Variable erstellen, wie Sie möchten. Zum Beispiel set amir=good_boy
und Sie können amir von %amir%
sehen, oder Sie können Java_home von %Java_home%
sehen.
Nach stundenlanger Arbeit an den meisten Lösungen wurde das Problem für mich durch die Installation von 32-Bit-JDK behoben.
Möglicherweise möchten Sie den Windows/System32-Ordner nach folgenden Dateien durchsuchen: - Java.exe - javaw.exe - javaws.exe
Da die Pfadvariable diese Dateien enthält, kann es zu Kopfschmerzen kommen, wenn Sie herausfinden, warum die Java -Version oder die javac -Version weiterhin auf das alte Java_HOME verweist: Benennen Sie diese Dateien um und entfernen Sie die Erweiterung mit Zum Beispiel ein Unterstrich. Anschließend müssen Sie nur die Variable Java_HOME erstellen, der Pfadvariablen hinzufügen (z. B.% Java_HOME%) und das Partikel "\ bin" anhängen. Auf diese Weise müssen Sie nur die Java_HOME-Variable ändern, die auf ein anderes JRE oder JDK verweist, und mehrere Installationen von Java ausführen, indem Sie Java_HOME festlegen.
Dies bedeutet auch, dass es besser ist, Java manuell ohne Installationsprogramm zu installieren, damit Sie damit spielen können.