Ich ging zu den Umgebungsvariablen in 'System' in der Systemsteuerung und erstellte zwei neue Variablen, eine für Benutzervariablen und eine für Systemvariablen. Beide wurden JAVA_HOME genannt und beide zeigten auf
C: \ Sun \ SDK \ jdk \ bin
Aber aus irgendeinem Grund wird beim Ausführen eines Java-Befehls immer noch der folgende Fehler angezeigt ...
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?
Antworten:
Suchen Sie das JDK-Installationsverzeichnis
Zunächst müssen Sie den Installationspfad für das Java Development Kit kennen.
Öffnen Sie den Standardinstallationspfad für das JDK:
Es sollte ein Unterverzeichnis geben wie:
Legen Sie die Variable JAVA_HOME fest
Sobald Sie den JDK-Installationspfad haben:
Der vollständige Artikel ist hier in meinem Blog: Festlegen der JAVA_HOME-Variablen in Windows .
quelle
/Java/jre*
ist kein JDK-Verzeichnis, sondern das Verzeichnis Java Runtime Enviroment. JDK ist in einem separaten Verzeichnis , wenn Sie einige verrückt Hack tun wollenWas für mich funktioniert hat, war das Hinzufügen der
%JAVA_HOME%\bin
Umgebungsvariablen Path, wobei dieJAVA_HOME
Umgebungsvariable auf denjdk
Ordner zeigt.quelle
Sie müssen zuerst JDK in Ihrem System installieren.
Stellen Sie Java Home ein
JAVA_HOME = C: \ Programme \ Java \ jdk1.7.0 [ Speicherort Ihres JDK-Installationsverzeichnisses]
Sobald Sie den JDK-Installationspfad haben:
Stellen Sie den JAVA-Pfad unter der Systemvariablen ein
PATH = C: \ Programme \ Java \ jdk1.7.0; [Wert mit Semikolon anhängen]
quelle
In cmd (vorübergehend für dieses cmd-Fenster):
quelle
setx
dann dieJAVA_HOME
noch festgelegt werden , nachdem Sie Ihren Computer herunterfahren haben. Dann müssen Sie es nicht erneut einstellen. Wird auchbin
nicht benötigt.JAVA_HOME
,PATH
undCLASSPATH
dann können Sie eine „tragbare“ Java - Umgebung.Sie müssen es auf einstellen
C:\Sun\SDK\jdk
(vorausgesetzt, dort wird das JDK installiert - es ist nicht die Standardeinstellung) - Fügen Sie das \ bin nicht einC:\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 Systemvariablen ein.
Möglicherweise müssen Sie
%JAVA_HOME%\bin
dem Pfad auch etwas hinzufügen (dies hängt auch davon ab, ob Sie ihn nur vom Benutzer oder von allen Benutzern, einschließlich System, ausführen.)quelle
http://javahowto.blogspot.com/2006/05/javahome-vs-javahome.html
Systemsteuerung> Java, Registerkarte Java, klicken Sie auf die Schaltfläche Ansicht. Geben Sie unter Laufzeitparameter Folgendes ein:
Wenn Sie Java ausführen, können Sie dem Befehl diesen Befehlszeilenschalter hinzufügen:
quelle
Ein Bild kann dieses Problem beheben.
Für mehr
quelle
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
PATH
, müssen Sie neben dem Anpassen von Variablen möglicherweise auch Registrierungsvariablen anpassen .Ich habe mir die Haare ausgezogen, meine
PATH
Variablen richtig eingestellt - immer noch ohne Erfolg - und dann nur "frei gewordene" Java-Einträge in meiner Registrierung gefunden, was anscheinend eine Sackgasse bei der Behebung der "fehlzündenden" Java-Laufzeitumgebung war.Als
Process Monitor
ich das Programm beobachtete, mit dem ich anfangen wollte, um herauszufinden, wo es in der Registrierung für Java (Runtime Environment) gesucht wurde, stellte ich triumphierend fest, dass es in der 32-Bit- Version der Registrierungseinträge in enthalten istHKEY_LOCAL_MACHINE\SOFTWARE\**Wow6432Node**\JavaSoft\Java Runtime Environment
.In diesem Schlüssel sollten Unterschlüssel verschiedener installierter Java-Versionen (Vergangenheit und / oder Gegenwart) gefunden werden. 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 und insbesondere
JavaHome
und angezeigtRuntimeLib
. Sie müssen die Werte dieser beiden Werte ändern, um sowohl den aktuellen Ordner als auch die Datei jvm.dll wiederzugeben.In meinem Fall wurden beispielsweise die Werte (zuvor) jeweils auf eingestellt
C:\Program Files (x86)\Java\jre7
undC:\Program Files (x86)\Java\jre7\bin\client\jvm.dll
sind auf meinem Computer nicht vorhanden. Ich musste diese auf den aktuellen Ordner und die Datei vonC:\Program Files (x86)\Java\jdk1.7.0_25\jre
und aktualisierenC:\Program Files (x86)\Java\jdk1.7.0_25\jre\bin\client\jvm.dll
.Dies hängt wiederum vollständig davon ab, welche Java-Version (JDK und / oder JRE) Sie installiert haben - 32 oder 64-Bit - und welche Art von Betriebssystem Sie verwenden - 32 oder 64-Bit. Sie müssen nur wissen, dass sie sich an verschiedenen Stellen in der Registrierung widerspiegeln (wie
Wow6432Node
bei 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 einwandfrei, ohne dass es zu Problemen oder Beschwerden über eine fehlende Java-Laufzeitumgebung (die aus der Registrierung stammt) kommt.
quelle
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.
Beispiel
quelle
Windows 7
Gehen Sie mit dem Explorer zu Systemsteuerung \ Alle Elemente der Systemsteuerung \ Benutzerkonten (nicht mit Internet Explorer!)
oder
Klicken Sie auf die Schaltfläche Start
Klicken Sie auf Ihr Bild
Ändere meine Umgebungsvariablen
Neu...
(Wenn Sie nicht über genügend Berechtigungen verfügen, um es im Abschnitt Systemvariablen hinzuzufügen, fügen Sie es dem Abschnitt Benutzervariablen hinzu.)
Fügen Sie JAVA_HOME als Variablennamen und den JDK-Speicherort als Variablenwert> OK hinzu
Prüfung:
set JAVA_HOME
JAVA_HOME=C:\Program Files\Java\jdk1.8.0_60
quelle
Wir müssen zwischen den beiden Umgebungsvariablen unterscheiden, die hier austauschbar diskutiert werden. Eine davon ist die Variable JAVA_HOME . Die andere ist die Pfadvariable . Jeder Prozess, der auf die Variable JAVA_HOME verweist, sucht nach dem Suchpfad zum JDK, nicht zur JRE. Die Verwendung der Variablen JAVA_HOME ist nicht für den Java-Compiler selbst vorgesehen. Der Compiler kennt seinen eigenen Speicherort. Die Variable ist für andere Software gedacht, um den Compiler leichter zu finden. Diese Variable wird normalerweise von der IDE-Software verwendet, um Anwendungen aus Java-Quellcode zu kompilieren und zu erstellen. Im Gegensatz dazu verweisen der Windows CMD-Interpreter und viele andere Software 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 unabhängig von Ihrem aktuellen Arbeitsverzeichnis aus dem CMD kompilieren möchten, müssen Sie die Pfadvariable korrekt festlegen. In Ihrem Fall benötigen Sie nicht einmal die Variable JAVA_HOME. Da CMD Path verwendet, nicht JAVA_HOME, um den Java-Compiler zu finden.
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 im Laufe der Jahre war JAVA_HOME, aber dies ist möglicherweise nicht immer der Fall.
Anwendungsfall 3: Kompilieren aus IDE und CMD
Wenn Sie zusätzlich zur IDE-Software unabhängig von Ihrem aktuellen Arbeitsverzeichnis auch aus der CMD kompilieren möchten, müssen Sie möglicherweise zusätzlich zur Variablen JAVA_HOME auch den JDK-Suchpfad an die Variable Path anhängen.
JAVA_HOME vs. Pfad
Wenn Ihr Problem mit dem Kompilieren von Java zusammenhängt, möchten Sie die Variable JAVA_HOME und den Pfad (falls zutreffend) überprüfen. Wenn Ihr Problem mit der Ausführung von Java-Anwendungen zusammenhängt, möchten Sie Ihre Pfadvariable überprüfen.
Die Pfadvariable wird universell für alle Betriebssysteme verwendet. Da es vom System definiert wird und die Standardvariable zum Auffinden der JRE verwendet wird, gibt es fast nie Probleme beim Ausführen von Java-Anwendungen. Besonders 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 in der Lage sein, diese aufzunehmen und zu verwenden.
Symlinks
Symbolische Links bieten möglicherweise eine weitere Möglichkeit, auf den JDK-Suchpfad zu verweisen, indem eine der vorhandenen Umgebungsvariablen huckepack genommen wird.
Ich bin mir bei früheren Versionen von Oracle / Sun JDK / JRE-Versionen nicht sicher, aber zumindest das Installationsprogramm für jdk1.8.0_74 hängt den Suchpfad
C:\ProgramData\Oracle\Java\javapath
an die Pfadvariable an und setzt ihn an den Anfang des Zeichenfolgenwerts. Dieses Verzeichnis enthält symbolische Links zu java.exe, javaw.exe und javaws.exe im JRE-Verzeichnis.Zumindest mit dem Java 8 JDK und vermutlich dem Java 8 JRE Standalone muss für die JRE keine Konfiguration der Umgebungsvariablen vorgenommen werden. Solange Sie das Installationspaket zum Einrichten verwenden. Es kann jedoch Unterschiede bei Ihrer Windows-Installation geben. Beachten Sie, dass die Oracle-JRE im Lieferumfang des JDK enthalten ist.
Wenn Sie jemals feststellen, dass Ihre Java JDK-Konfiguration die falsche Version des Compilers verwendet oder auf magische Weise funktioniert, ohne dies explizit zu definieren (ohne den Zauber zu wirken), haben Sie möglicherweise irgendwo in Ihren Umgebungsvariablen einen Symlink . Vielleicht möchten Sie nach Symlink suchen.
quelle
goto Meincomputer (Dieser PC) -> Rechtsklick -> wählen Sie Eigenschaften -> Erweiterte Systemeinstellungen -> Umwelt Variablen-> in Systemvariablen klicken Sie auf " Neu " und Schreib JAVA_HOME in Variablennamen und den Pfad C: \ Programme \ Java \ jdk1. 8.0_131 wo jdk im Variablenwert vorhanden ist-> klicke auf ok.
Schließen Sie die Eingabeaufforderung und öffnen Sie sie erneut, nachdem Sie JAVA_HOME festgelegt haben. Manchmal werden Änderungen im geöffneten cmd vor dem Festlegen von JAVA_HOME 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"
quelle
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.
quelle
Wenn Sie Ihr Java-Verzeichnis zu Ihrer
PATH
Variablen hinzufügen , möchten Sie es möglicherweise am Anfang platzieren. Ich hatte das Problem, dass das Setzen des Java-Verzeichnisses am Ende desPATH
nicht funktionieren würde. Nach dem Überprüfen habe ichjava.exe
in meinemWindows\System32
Verzeichnis gefunden und es sieht so aus, als ob der erste gewinnt, wenn mehrere Dateien mit demselben Namen in IhremPATH
...quelle
java.exe
undjavaw.exe
in den Systemordnern durch die Kopien aus dem JRE / JDK ersetzt, sodass es weiterhin funktionieren sollte. Wenn Sie es manuell installieren (entpacken Sie einfach die Archive), müssen Sie in der Tat darauf achten, welche Kopie ausgeführt wird.Führen Sie Eclipse als Administrator aus.
Das hat mein Problem gelöst. Ich grabe immer noch nach der Logik dahinter.
quelle
Wenn Sie Ihren Computer nach der Installation von jdk nicht neu gestartet haben, starten Sie einfach Ihren Computer neu.
wenn du ein machen willst portables Java erstellen und den Pfad festlegenbevor Sie Java verwenden, erstellen Sie einfach eine Batch-Datei, die ich unten erläutert habe.
Wenn Sie diese Batchdatei beim Start Ihres Computers ausführen möchten, legen Sie einfach die Verknüpfung für die Batchdatei im Startordner ab. Der Startordner von Windows 7 lautet "C: \ Benutzer \ Benutzer \ AppData \ Roaming \ Microsoft \ Windows \ Startmenü \ Programme \ Start".
Erstellen Sie eine Batch-Datei wie folgt:
Anmerkung:
java_home
undpath
sind Variablen. Sie können eine beliebige Variable erstellen. Zum Beispielset amir=good_boy
und Sie können amir by%amir%
oder java_home by sehen%java_home%
quelle
Nach stundenlanger Arbeit an den meisten Lösungen hier wurde das Problem für mich durch die Installation von 32-Bit-JDK gelöst.
quelle
Möglicherweise möchten Sie im Windows / System32-Ordner nach den folgenden Dateien suchen: - java.exe - javaw.exe - javaws.exe
Da die Pfadvariable diese Dateien enthält, kann es zu Kopfschmerzen kommen, wenn Sie herausfinden möchten, warum die Java-Version oder die Java-Version immer wieder auf das alte JAVA_HOME verweist: Benennen Sie diese Dateien um, entfernen Sie die Erweiterung beispielsweise mit einem Unterstrich. Anschließend müssen Sie nur noch die Variable JAVA_HOME erstellen, zur Pfadvariablen hinzufügen (z. B.% JAVA_HOME%) und das Partikel "\ bin" anhängen. Auf diese Weise müssen Sie nur die Variable JAVA_HOME ändern, die auf eine andere JRE oder ein anderes JDK verweist, und mehrere Java-Installationen durchfü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.
quelle