Beim Kompilieren von Java-Programmen tritt ein Fehler auf.
Ich bin unter Windows (dies ist ein Windows-spezifisches Problem) und ich habe das neueste JDK installiert.
Ich habe versucht, eine Lösung mit der PATH
Variablen zu finden, aber der Fehler bleibt bestehen.
Konsolenausgabe:
C:\>set path=C:Program Files (x86)\Java\jdk1.7.0\bin
C:\>javac Hello.java
'javac' is not recognized as an internal or external command,
operable program or batch file.
java
path
environment-variables
command-prompt
javac
user987137
quelle
quelle
Antworten:
TL; DR
Für erfahrene Leser:
C:\Program Files\Java\jdkxxxx\bin\
PATH
. Entfernen Sie alte Java-Pfade.PATH
.JAVA_HOME
.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, wojavac.exe
sich der Standort befindet. Dies wird mitPATH
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:
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:Wenn Sie ausführen
javac HelloWorld.java
, durchsucht cmd das System, wenn der Benutzer feststellt, dassjavac
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:
java
aber nichtjavac
.java
als auchjavac
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:
TU das nicht. Es gibt mehrere Hauptprobleme mit diesem Befehl:
PATH
und ersetzt sie durch die Java - Pfad. Nach dem Ausführen dieses Befehls funktionieren möglicherweise verschiedene andere Befehle 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.PATH
gilt nur für die aktuelle cmd-Sitzung. Sie müssen denset
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:
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\
(oderC:\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 zujre
) 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:
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:
control sysdm.cpl,,3
SystemPropertiesAdvanced.exe
» UmgebungsvariablenControl Panel\System and Security\System
» Erweiterte Systemeinstellungen (ganz links in der Seitenleiste) »UmgebungsvariablenDiese 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 SiePATH
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 zweiPATH
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 , aberjava
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 habenPATH
. 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 dasbin/
Verzeichnis ein, dC:\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 altenPATH
. 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
quelle
versuchen Sie dies .. Ich hatte es auch, aber jetzt löste es in XP ..
quelle
Sie haben den
set
Befehl falsch eingegeben - Sie haben den Backslash danach verpasstC:
. Es sollte sein:quelle
C:\Program Files (x86)\Java\jdk1.7.0
? Wenn ja, was passiert danncd C:\Program Files (x86)\Java\jdk1.7.0\bin
und dannjavac -version
?Führen Sie an der Eingabeaufforderung Folgendes aus:
set Path="C:\Program Files\Java\jdk1.7.0_09\bin"
oderset PATH="C:\Program Files\Java\jdk1.7.0_09\bin"
Ich habe es versucht und es funktioniert gut.
quelle
Wenn der Java-Befehl funktioniert und Probleme mit Javac auftreten. Überprüfen Sie dann zuerst, ob die Datei javac.exe im Bin-Verzeichnis von jdk vorhanden ist oder nicht. Wenn die Datei javac.exe vorhanden ist, wird sie
JAVA_HOME
als Systemvariable festgelegt .quelle
Überprüfen Sie Ihre Umgebungsvariablen.
In meinem Fall hatte ich JAVA_HOME in der Menge Systemvariablen sowie in meinem Benutzerkonto Variablen und dieser wurde auf eine Set falsche Version von Java . Ich hatte auch das gleiche Problem mit der Pfadvariablen.
Nachdem JAVA_HOME aus meinen Benutzerkontovariablen gelöscht und der falsche Pfad aus der Pfadvariablen entfernt wurde, funktionierte es ordnungsgemäß.
quelle