TL; DR
Für erfahrene Leser:
- Suchen Sie den Java-Pfad. es sieht aus wie das:
C:\Program Files\Java\jdkxxxx\bin\
- Startmenüsuche nach "Umgebungsvariable", um den Optionsdialog zu öffnen.
- Untersuche
PATH
. Entfernen Sie alte Java-Pfade.
- Fügen Sie den neuen Java-Pfad zu hinzu
PATH
.
- Bearbeiten
JAVA_HOME
.
- Schließen Sie die Konsole / IDE und öffnen Sie sie erneut.
Herzlich willkommen!
Sie sind auf eines der bekanntesten technischen Probleme gestoßen, mit denen Java-Anfänger konfrontiert sind: das 'xyz' is not recognized as an internal or external command...
Fehlermeldung.
Kurz gesagt, Sie haben Java nicht richtig installiert . Das Abschließen der Installation von Java unter Windows erfordert einige manuelle Schritte. Sie müssen diese Schritte nach der Installation von Java immer ausführen, auch nach dem Upgrade des JDK.
Umgebungsvariablen und PATH
(Wenn Sie dies bereits verstehen, können Sie die nächsten drei Abschnitte überspringen.)
Beim Ausführen javac HelloWorld.java
muss cmd bestimmen, wo javac.exe
sich der Standort befindet. Dies wird mit PATH
einer Umgebungsvariablen erreicht.
Eine Umgebungsvariable ist ein spezielles Schlüssel-Wert-Paar (z windir=C:\WINDOWS
. B. ). Die meisten wurden mit dem Betriebssystem geliefert, und einige sind für die ordnungsgemäße Funktion des Systems erforderlich. Eine Liste von ihnen wird beim Start an jedes Programm (einschließlich cmd) übergeben. Unter Windows gibt es zwei Typen : Benutzerumgebungsvariablen und Systemumgebungsvariablen .
Sie können Ihre Umgebungsvariablen folgendermaßen sehen:
C:\>set
ALLUSERSPROFILE=C:\ProgramData
APPDATA=C:\Users\craig\AppData\Roaming
CommonProgramFiles=C:\Program Files\Common Files
CommonProgramFiles(x86)=C:\Program Files (x86)\Common Files
CommonProgramW6432=C:\Program Files\Common Files
...
Die wichtigste Variable ist PATH
. Es ist eine Liste von Pfaden, die durch getrennt sind;
. Wenn ein Befehl in cmd eingegeben wird, wird jedes Verzeichnis in der Liste nach einer passenden ausführbaren Datei durchsucht.
Auf meinem Computer PATH
ist:
C:\>echo %PATH%
C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPower
Shell\v1.0\;C:\ProgramData\Microsoft\Windows\Start Menu\Programs;C:\Users\craig\AppData\
Roaming\Microsoft\Windows\Start Menu\Programs;C:\msys64\usr\bin;C:\msys64\mingw64\bin;C:\
msys64\mingw32\bin;C:\Program Files\nodejs\;C:\Program Files (x86)\Yarn\bin\;C:\Users\
craig\AppData\Local\Yarn\bin;C:\Program Files\Java\jdk-10.0.2\bin;C:\ProgramFiles\Git\cmd;
C:\Program Files\Oracle\VirtualBox;C:\Program Files\7-Zip\;C:\Program Files\PuTTY\;C:\
Program Files\launch4j;C:\Program Files (x86)\NSIS\Bin;C:\Program Files (x86)\Common Files
\Adobe\AGL;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program
Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Intel\iCLS Client\;
C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files
(x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Intel\iCLS
Client\;C:\Users\craig\AppData\Local\Microsoft\WindowsApps
Wenn Sie ausführen javac HelloWorld.java
, durchsucht cmd das System, wenn der Benutzer feststellt, dass javac
es sich nicht um einen internen Befehl handelt , gefolgt vom Benutzer . Er tritt mechanisch jedes Verzeichnis in der Liste, und prüft , ob , , etc. vorhanden ist. Wenn es findet , wird es ausgeführt. Wenn dies nicht der Fall ist, wird gedrucktPATH
PATH
javac.com
javac.exe
javac.bat
javac
'javac' is not recognized as an internal or external command, operable program or batch file.
Sie müssen das Verzeichnis der ausführbaren Java-Dateien hinzufügen PATH
.
JDK gegen JRE
(Wenn Sie dies bereits verstehen, können Sie diesen Abschnitt überspringen.)
Beim Herunterladen von Java haben Sie die Wahl zwischen:
- Die Java Runtime Environment (JRE), die die erforderlichen Tools zum Ausführen von Java-Programmen, aber nicht zum Kompilieren neuer Programme enthält - enthält,
java
aber nichtjavac
.
- Das Java Development Kit (JDK), das sowohl
java
als auch javac
eine Vielzahl anderer Entwicklungstools enthält. Das JDK ist eine Obermenge der JRE.
Sie müssen sicherstellen, dass Sie das JDK installiert haben . Wenn Sie nur die JRE installiert haben, können Sie sie nicht ausführen, javac
da der Java-Compiler nicht auf Ihrer Festplatte installiert ist. Überprüfen Sie die Liste Ihrer Windows-Programme und stellen Sie sicher, dass der Name des Java-Pakets die Wörter "Development Kit" enthält.
Nicht benutzen set
(Wenn Sie es sowieso nicht geplant haben, können Sie diesen Abschnitt überspringen.)
Einige andere Antworten empfehlen die Ausführung einer Variation von:
C:\>:: DON'T DO THIS
C:\>set PATH=C:\Program Files\Java\jdk1.7.0_09\bin
TU das nicht. Es gibt mehrere Hauptprobleme mit diesem Befehl:
- Dieser Befehl löscht alles andere aus
PATH
und ersetzt sie durch die Java - Pfad. Nach dem Ausführen dieses Befehls funktionieren möglicherweise verschiedene andere Befehle nicht.
- Ihr Java-Pfad ist wahrscheinlich nicht
C:\Program Files\Java\jdk1.7.0_09\bin
- Sie haben mit ziemlicher Sicherheit eine neuere Version des JDK, die einen anderen Pfad hätte.
- Das neue
PATH
gilt nur für die aktuelle cmd-Sitzung. Sie müssen den set
Befehl jedes Mal neu eingeben, wenn Sie die Eingabeaufforderung öffnen.
Die Punkte 1 und 2 können mit dieser etwas besseren Version gelöst werden:
C:\>:: DON'T DO THIS EITHER
C:\>set PATH=C:\Program Files\Java\<enter the correct Java folder here>\bin;%PATH%
Aber im Allgemeinen ist es nur eine schlechte Idee.
Suchen Sie den Java-Pfad
Der richtige Weg beginnt damit, herauszufinden, wo Sie Java installiert haben. Das hängt davon ab, wie Sie Java installiert haben.
Exe Installer
Sie haben Java installiert, indem Sie ein Setup-Programm ausgeführt haben. Das Installationsprogramm von Oracle platziert Java-Versionen unter C:\Program Files\Java\
(oder C:\Program Files (x86)\Java\
). Navigieren Sie mit dem Datei-Explorer oder der Eingabeaufforderung zu diesem Verzeichnis.
Jeder Unterordner repräsentiert eine Version von Java. Wenn es nur einen gibt, haben Sie ihn gefunden. Andernfalls wählen Sie die Version, die der neueren Version ähnelt. Stellen Sie sicher, dass der Ordnername mit jdk
(im Gegensatz zu jre
) beginnt . Geben Sie das Verzeichnis ein.
Dann geben Sie das bin
Verzeichnis davon ein.
Sie befinden sich jetzt im richtigen Verzeichnis. Kopieren Sie den Pfad. Klicken Sie im Datei-Explorer auf die Adressleiste. Wenn Sie sich in der Eingabeaufforderung befinden, kopieren Sie die Eingabeaufforderung.
Der resultierende Java-Pfad sollte die Form (ohne Anführungszeichen) haben:
C:\Program Files\Java\jdkxxxx\bin\
Zip-Datei
Sie haben eine ZIP-Datei mit dem JDK heruntergeladen. Extrahieren Sie es an einen zufälligen Ort, an dem es Ihnen nicht im Weg steht. C:\Java\
ist eine akzeptable Wahl.
Suchen Sie dann den bin
Ordner irgendwo darin.
Sie befinden sich jetzt im richtigen Verzeichnis. Kopieren Sie den Pfad. Dies ist der Java-Pfad.
Denken Sie daran, den Ordner niemals zu verschieben, da dies den Pfad ungültig machen würde.
Öffnen Sie den Einstellungsdialog
Das ist der zu bearbeitende Dialog PATH
. Abhängig von Ihrer Windows-Version, den Einstellungen der Benutzeroberfläche und dem Durcheinander Ihrer Systemkonfiguration gibt es zahlreiche Möglichkeiten, zu diesem Dialogfeld zu gelangen.
Probieren Sie einige davon aus:
- Suchfeld Startmenü / Taskleiste »Suche nach" Umgebungsvariable "
- Win + R »
control sysdm.cpl,,3
- Win + R »
SystemPropertiesAdvanced.exe
» Umgebungsvariablen
- Datei-Explorer »Geben Sie in die Adressleiste ein
Control Panel\System and Security\System
» Erweiterte Systemeinstellungen (ganz links in der Seitenleiste) »Umgebungsvariablen
- Desktop »Klicken Sie mit der rechten Maustaste auf Diesen PC» Eigenschaften »Erweiterte Systemeinstellungen» Umgebungsvariablen
- Startmenü »Klicken Sie mit der rechten Maustaste auf Computer» Eigenschaften »Erweiterte Systemeinstellungen» Umgebungsvariablen
- Systemsteuerung (Symbolmodus) »System» Erweiterte Systemeinstellungen »Umgebungsvariablen
- Systemsteuerung (Kategoriemodus) »System und Sicherheit» System »Erweiterte Systemeinstellungen» Umgebungsvariablen
- Desktop »Klicken Sie mit der rechten Maustaste auf Arbeitsplatz» Erweitert »Umgebungsvariablen
- Systemsteuerung »System» Erweitert »Umgebungsvariablen
Diese sollten Sie zum richtigen Einstellungsdialog führen.
Wenn Sie unter Windows 10 arbeiten, hat Microsoft Sie mit einer schicken neuen Benutzeroberfläche zum Bearbeiten gesegnet PATH
. Andernfalls sehen Sie PATH
in seiner vollen, mit Semikolons verkrusteten Pracht, die in einem einzeiligen Textfeld zusammengefasst ist. Geben Sie Ihr Bestes, um die erforderlichen Änderungen vorzunehmen, ohne Ihr System zu beschädigen.
Reinigen PATH
Schau dir an PATH
. Sie haben fast definitiv zwei PATH
Variablen (aufgrund von Benutzer- und Systemumgebungsvariablen). Sie müssen sich beide ansehen.
Suchen Sie nach anderen Java-Pfaden und entfernen Sie diese. Ihre Existenz kann alle möglichen Konflikte verursachen. (Wenn Sie beispielsweise JRE 8 und JDK 11 in PATH
dieser Reihenfolge haben, javac
wird der Java 11-Compiler aufgerufen, der .class
Dateien der Version 55 erstellt , aber java
die Java 8-JVM, die nur bis zur Version 52 unterstützt, und Es treten nicht unterstützte Versionsfehler auf und Sie können keine Programme kompilieren und ausführen.) Umgehen Sie diese Probleme, indem Sie sicherstellen, dass Sie nur einen Java-Pfad haben PATH
. Und wenn Sie schon dabei sind, können Sie auch alte Java-Versionen deinstallieren . Und denken Sie daran, dass Sie nicht sowohl ein JDK als auch ein JRE benötigen .
Wenn ja C:\ProgramData\Oracle\Java\javapath
, entfernen Sie das ebenfalls . Oracle wollte das Problem lösen, dass Java-Pfade nach Upgrades unterbrochen werden, indem ein symbolischer Link erstellt wurde , der immer auf die neueste Java-Installation verweist. Leider zeigt es oft auf den falschen Ort oder funktioniert einfach nicht . Es ist besser, diesen Eintrag zu entfernen und den Java-Pfad manuell zu verwalten.
Jetzt ist auch eine gute Gelegenheit, eine allgemeine Haushaltsführung durchzuführen PATH
. Wenn auf Ihrem PC keine Softwarepfade mehr installiert sind, können Sie diese entfernen. Sie können auch die Reihenfolge der Pfade mischen (wenn Sie sich für solche Dinge interessieren).
Hinzufügen PATH
Nehmen Sie nun den Java-Pfad, den Sie vor drei Schritten gefunden haben, und platzieren Sie ihn im System PATH
.
Es sollte keine Rolle spielen, wohin in der Liste Ihr neuer Pfad führt. es am Ende zu platzieren ist eine gute Wahl.
Wenn Sie die Benutzeroberfläche vor Windows 10 verwenden, stellen Sie sicher, dass Sie die Semikolons korrekt platziert haben. Es sollte genau einen geben, der jeden Pfad in der Liste trennt.
Hier gibt es wirklich nicht viel zu sagen. Fügen Sie einfach den Pfad hinzu PATH
und klicken Sie auf OK.
einstellen JAVA_HOME
Wenn Sie schon dabei sind, können Sie auch einstellen JAVA_HOME
. Dies ist eine weitere Umgebungsvariable, die auch den Java-Pfad enthalten sollte. Viele Java- und Nicht-Java-Programme, einschließlich der beliebten Java-Build-Systeme Maven und Gradle , werfen Fehler aus, wenn sie nicht richtig eingestellt sind.
Wenn JAVA_HOME
nicht vorhanden, erstellen Sie es als neue Systemumgebungsvariable. Stellen Sie den Pfad des Java-Verzeichnisses ohne das bin/
Verzeichnis ein, d C:\Program Files\Java\jdkxxxx\
. H.
Denken Sie daran, diese auch JAVA_HOME
nach dem Upgrade von Java zu bearbeiten .
Schließen Sie die Eingabeaufforderung und öffnen Sie sie erneut
Obwohl Sie Änderungen vorgenommen haben PATH
, sehen alle laufenden Programme, einschließlich cmd, nur die alten PATH
. Dies liegt daran, dass die Liste aller Umgebungsvariablen erst zu Beginn der Ausführung in ein Programm kopiert wird. Danach wird nur die zwischengespeicherte Kopie konsultiert.
Es gibt keine gute Möglichkeit, die Umgebungsvariablen von cmd zu aktualisieren. Schließen Sie einfach die Eingabeaufforderung und öffnen Sie sie erneut. Wenn Sie eine IDE verwenden, schließen Sie sie ebenfalls und öffnen Sie sie erneut.
Siehe auch