it-swarm.com.de

javac funktioniert nicht in der Windows-Eingabeaufforderung

Ich versuche, javac mit dem Windows-Befehl Prompt zu verwenden, aber es funktioniert nicht.

Nachdem Sie das Verzeichnis "C:\Program Files\Java\jdk1.6.0_16\bin\" am Ende der Umgebungsvariable PATH hinzugefügt haben, funktioniert der Befehl Java einwandfrei. Die Verwendung von javac führt jedoch zu folgendem Fehler:

'javac' wird nicht als interner oder externer Befehl, bedienbares Programm oder Stapelverarbeitungsdatei erkannt.

117
Domenic

Wenn Sie es in der Systemsteuerung hinzugefügt haben, während Ihre Eingabeaufforderung geöffnet war, hat dies keine Auswirkungen auf Ihre aktuelle Eingabeaufforderung. Sie müssen das Programm beenden und erneut öffnen oder einfach Folgendes tun:

set "path=%path%;c:\program files\Java\jdk1.6.0_16\bin"

Führen Sie zur Kontrolle Folgendes aus:

echo %path%

von Ihrem Befehl aus Fordern Sie uns an und lassen Sie uns wissen, was es ist.

Ansonsten stellen Sie sicher, dass is ein Javac in diesem Verzeichnis ist, indem Sie Folgendes versuchen:

"c:\program files\Java\jdk1.6.0_16\bin\javac.exe"

von der Eingabeaufforderung. Sie können auch welche ausführbare Datei (falls vorhanden) mit dem Befehl verwenden:

for %i in (javac.exe) do @echo %~$PATH:i

Dies ist ein netter Trick, der den Befehlen which und/oder whence in einigen UNIX-Betriebssystemen ähnelt.

144
paxdiablo

Windows OS durchsucht das aktuelle Verzeichnis und die in der Umgebungsvariablen PATH aufgelisteten Verzeichnisse nach ausführbaren Programmen. JDK-Programme (wie Java-Compiler javac.exe und Java Runtime Java.exe) befinden sich im Verzeichnis "\ bin" (wobei das installierte JDK-Verzeichnis bezeichnet wird, z. B. C:\Programme\Java\jdk1.8.0_xx). Sie müssen das Verzeichnis "\ bin" im PFAD angeben.

So bearbeiten Sie die Umgebungsvariable PATH in Windows XP/Vista/7/8:

  1. Systemsteuerung ⇒ System ⇒ Erweiterte Systemeinstellungen

  2. Wechseln Sie auf die Registerkarte "Erweitert" ⇒ Umgebungsvariablen

  3. Scrollen Sie unter "Systemvariablen" nach unten, um "PFAD" auszuwählen ⇒ Bearbeiten

((Lesen Sie nun die folgenden 3 Mal, bevor Sie fortfahren, THERE IS NO UNDO).)

Im Feld "Variablenwert" INSERT "c:\Programme\Java\jdk1.8.0_xx\bin" (Ersetzen Sie xx durch die Upgrade-Nummer und ÜBERPRÜFEN Sie, dass dies das Binärverzeichnis Ihres JDK ist !!!) VOR allen vorhandenen Verzeichnisse, gefolgt von einem Semikolon (;), das das binäre Verzeichnis des JDK vom Rest der vorhandenen Verzeichnisse trennt . KEINE vorhandenen Einträge LÖSCHEN; Andernfalls werden einige vorhandene Anwendungen möglicherweise nicht ausgeführt.

Variable name  : PATH
Variable value : c:\Program Files\Java\jdk1.8.0_xx\bin;[existing entries...]

Screenshot

85
mike

Nach langem Google erfuhr ich, dass javac.exe in JDK (C:\Programme\Java\jdk (Versionsnummer)\bin) und nicht in JRE ( C:\Programme (x86)\Java\jre7\bin) "JRE wird nicht mit einem Compiler geliefert. (JRE) ist einfach eine Java-Laufzeitumgebung. Was Sie brauchen, ist das Java Development Kit.", um den Compiler Javac zu verwenden

javac funktioniert nicht, wenn Sie in jre auf bin zeigen

Um javac in cmd verwenden zu können, muss JDK in Ihrem System installiert sein ...

Für Javac-Pfad

path = C:\Programme (x86)\Java\jre7\bin Dies ist falsch 

path = C:\Programme\Java\jdk (Versionsnummer)\bin Dies ist korrekt

Stellen Sie sicher, dass sich "javac.exe" in Ihrem "C:\Programme\Java\jdk (Versionsnummer)\bin" befindet.

Lassen Sie sich nicht mit JRE und JDK verwechseln. Beide sind völlig verschieden 

wenn Sie nicht über JDK pls von diesem Link herunterladen können http://www.Oracle.com/technetwork/Java/javase/downloads/index.html

referenzthread für JDK VS JRE Was ist der Unterschied zwischen JDK und JRE?

32
TechDog

Ich weiß, dass dies möglicherweise nicht Ihr spezifischer Fehler ist, aber ich hatte einmal einen führenden Platz in meinem Pfad, und Java würde funktionieren, Javac jedoch nicht. 

Für das, was es wert ist, gebe ich den weisen Rat: "Untersuche deinen Weg genau".

6
Sam

Probieren Sie die Lösungen hier aus: http://techdem.centerkey.com/2009/05/javahome-command-script.html

Diese sind viel robuster für Änderungen - wie beim Upgrade des JDK oder der JRE, da es keinen fest codierten Pfad gibt.

Die schnelle Lösung (wenn Sie den Blog nicht lesen möchten) ist

C:\>for /d %i in ("\Program Files\Java\jdk*") do set Java_HOME=%i
C:\>set PATH=%PATH%;%Java_HOME%

Sie können diese Zeilen dann zu einem Start-/Anmeldeskript hinzufügen.

5
Jason

Ich musste dies nur tun, um dies unter Windows 7 64 zu erreichen.

Öffnen Sie eine Eingabeaufforderung (cmd.exe) und geben Sie Folgendes ein:

set CLASSPATH=C:\Program Files\Java\jdk1.7.0_01\bin

Stellen Sie sicher, dass Sie alle laufenden Befehle erneut öffnen, um die Umgebungsvariable zu aktualisieren.

3
Ryan Summey

Okay, dies kann nicht immer der Fall sein, aber viele von uns haben diesen Fehler in der Vergangenheit begangen, und nur wenige von ihnen sind sich dessen noch nicht bewußt. Das heißt, jedes Mal, wenn Sie einen Pfad (einen beliebigen Pfad) einer beliebigen Umgebungsvariablen, also Sie, anhängen Sie werden wahrscheinlich gleich nach dem "Semikolon" die Leertaste drücken (wie Sie es normalerweise nach dem "Punkt" beim Eingeben eines Editors tun würden). 

Dadurch wird ein führender Speicherplatz im Pfad erstellt, z. B. "C:\Programme\Java\jdk1.6.0\bin". Daher wird "javac.exe" vom System nicht gefunden.

3
Malay Desai

Ändern Sie den Ordner "jdk1.7.0_45" "jdk1_7_0_60" und aktualisieren Sie den Pfad in der Windows-Umgebung. Andernfalls ignoriert der Pfad den Punkt an der Vorderseite, der für die ausgeblendete Datei steht. Daher wird der Ordner nicht in PATH-Zeichenfolgen angezeigt.

2
NewDev

Stellen Sie sicher, dass Sie keine Leerzeichen (Leerzeichen) zwischen Pfaden in der Pfadvariablen zulassen. Mein Problem war, dass ich Leerzeichen hatte und ich glaube, Windows behandelte es als NULL und las meinen Pfad für Java nicht.

0
TRHUMMEL

Der Pfad wird nur für das Administratorkonto festgelegt. Daher ist es wichtig, den Befehl Eingabeaufforderung als Administrator zu starten, falls Sie dies nicht bereits getan haben.

0
Fredrik Hemsen

Ich schätze, dass dies eine alte Frage ist, aber meine Lösung war hier keine Antwort, also poste ich sie, falls jemand anderes alles andere versucht.

In meinem Fall hatte eine vorherige Installation der Java JRE (in ProgramData/Oracle/Java) eine Pfadvariable oben in meiner Liste der Pfadvariablen. Der Inhalt dieses "Oracle" -Pfads hatte eine Java.exe, aber keine javac.exe . Ich fügte meinen vollständigen JDK-Pfad oben in der Liste der Pfadvariablen vor dem "Oracle" -Pfad hinzu abgeholt javac.exe sowie Java.

0
Neil
for /d %i in ("\Program Files\Java\jdk*") do set Java_HOME=%i
set Java_HOME

diese lösung funktionierte für mich

0

Ich hatte das gleiche Problem in diesem Titel. Java würde funktionieren, aber javac würde nicht in der Windows-Eingabeaufforderung (cmd.exe) angezeigt.

Für mich war es einfach so, dass ich beim Hinzufügen von C:\Program Files\Java\jdk1.8.0\bin am Ende meiner %PATH%-Umgebungsvariablen ein Leerzeichen gesetzt hatte.
Entfernen Sie den Abstand zwischen dem ; und dem nächsten Dateipfad.

0
Taiton

Ich hatte genau das gleiche Problem, dass Java funktionieren würde, aber Javac würde keine Eingabeaufforderung für cmd in Windows 8 verwenden.

Das Problem trat auf, weil ich vergessen hatte, '>' am Ende des Pfadnamens zu entfernen, d. H.

C:\Program Files\Java\jdk*\bin>

wo sollte es so sein:

C:\Program Files\Java\jdk*\bin
0
Kevin