Einstieg und Setup

javac wird nicht erkannt: Ursache und Lösung für Windows und Mac

Veröffentlicht am 22. Oktober 20265 Min. Lesezeit

Du tippst javac Main.java ins Terminal, und statt einer übersetzten Datei kommt eine Fehlermeldung. Das passiert fast jedem beim ersten Einrichten von Java. Hier liest du, was die Meldung bedeutet, wie du die Ursache in zwei Minuten findest und wie du sie unter Windows und macOS behebst.

Was die Meldung bedeutet

Je nach System sieht der Fehler etwas anders aus:

Der Befehl "javac" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.

In der PowerShell heißt es, die Benennung „javac“ wurde nicht als Name eines Cmdlet, einer Funktion, einer Skriptdatei oder eines ausführbaren Programms erkannt. Auf dem Mac siehst du zsh: command not found: javac oder den Hinweis „Unable to locate a Java Runtime“.

Gemeint ist immer dasselbe: Das Terminal findet das Programm javac nicht. Mit deinem Java-Code hat das nichts zu tun. Der Code ist noch gar nicht beim Compiler angekommen.

Die Ursache in zwei Minuten finden

Öffne ein neues Terminal und gib diese zwei Befehle ein:

java -version
javac -version

Jetzt gibt es drei Fälle:

java -versionjavac -versionUrsache
FehlerFehlerEs ist kein Java installiert, oder der PATH fehlt ganz.
Version wird angezeigtFehlerDu hast nur eine Laufzeitumgebung (JRE), kein JDK, oder der PATH zeigt auf ein altes Java.
Version wird angezeigtVersion wird angezeigtAlles in Ordnung. Das alte Terminal kannte den neuen PATH nur noch nicht.

Der dritte Fall ist häufiger, als man denkt. Ein Terminal liest den PATH beim Start. Wenn du Java installierst, während es offen ist, musst du es schließen und neu öffnen. Das gilt auch für das Terminal in deiner IDE.

Unterschied zwischen JRE und JDK

Die JRE kann Java-Programme nur ausführen. Den Compiler javac enthält nur das JDK. Wer früher Java für ein Spiel oder ein Programm von java.com installiert hat, hat oft nur eine Laufzeitumgebung. Dann funktioniert java, aber javac fehlt. Die Lösung ist, ein JDK zu installieren, am besten eine aktuelle LTS-Version wie JDK 25.

Lösung unter Windows

1. JDK installieren

Lade ein JDK für Windows x64 herunter, zum Beispiel von Oracle oder Eclipse Temurin. Der Oracle-Installer legt laut der Oracle-Installationsanleitung java.exe und javac.exe in einen Ordner javapath, der im PATH steht. Beim Temurin-Installer ist die Option für den PATH standardmäßig aktiv. Für beide Installer brauchst du Admin-Rechte. Hast du die nicht, lies Java ohne Admin-Rechte.

2. Prüfen, wo das JDK liegt

Das Oracle-JDK landet normalerweise in einem Ordner wie diesem:

C:\Program Files\Java\jdk-25

Darin gibt es einen Unterordner bin. Genau dort liegt javac.exe. Schau im Explorer nach, wie der Ordner bei dir genau heißt.

3. PATH von Hand setzen

Wenn javac nach einem neuen Terminal immer noch fehlt, trägst du den Ordner selbst ein:

  1. Drück die Windows-Taste und suche nach „Umgebungsvariablen“.
  2. Wähle „Umgebungsvariablen für dieses Konto bearbeiten“. Dafür brauchst du keine Admin-Rechte.
  3. Markiere unter „Benutzervariablen“ den Eintrag Path und klicke auf „Bearbeiten“.
  4. Klicke auf „Neu“ und füge den bin-Ordner ein, zum Beispiel C:\Program Files\Java\jdk-25\bin.
  5. Bestätige alle Fenster mit OK.
  6. Schließe jedes offene Terminal und öffne ein neues.

Drei Fehler kommen hier immer wieder vor:

  • \bin vergessen. Der PATH muss auf den bin-Ordner zeigen, nicht auf den JDK-Ordner selbst.
  • Altes Java steht weiter vorn. Mit where java und where javac siehst du, welche Dateien Windows wirklich findet. Steht ein alter Java-8-Pfad vor deinem JDK, schiebst du deinen Eintrag mit „Nach oben“ nach vorn.
  • JAVA_HOME falsch gesetzt. Manche Programme brauchen zusätzlich JAVA_HOME. Es zeigt auf den JDK-Ordner ohne \bin.

Lösung unter macOS

Auf dem Mac ist die Lage etwas anders. macOS bringt kleine Platzhalter für java und javac mit, aber kein echtes Java. Ohne JDK melden sie, dass keine Java-Laufzeit gefunden wurde.

1. Das richtige JDK installieren

Prüfe zuerst, welchen Chip dein Mac hat: Apple-Menü, dann „Über diesen Mac“. Steht dort ein Chip wie „Apple M2“, brauchst du die Variante aarch64. Bei „Intel“ nimmst du x64. Oracle bietet für beide eine .dmg-Datei an. Der Installer fragt nach deinem Admin-Passwort und legt das JDK nach /Library/Java/JavaVirtualMachines/. Danach finden die Platzhalter java und javac es automatisch, ein PATH-Eintrag ist dann normalerweise nicht nötig.

2. Prüfen, welches JDK aktiv ist

/usr/libexec/java_home -V

Der Befehl listet alle installierten JDKs auf. Taucht deins nicht auf, hat die Installation nicht geklappt.

3. Sonderfall Homebrew

Hast du das JDK mit brew install openjdk installiert, landet es nicht im Systemordner. Homebrew zeigt nach der Installation einen Hinweis mit einem sudo ln -sfn ...-Befehl an, der das JDK für die System-Platzhalter sichtbar macht. Führe genau diesen Befehl aus, oder setze den PATH in deiner ~/.zshrc:

export JAVA_HOME=$(/usr/libexec/java_home)
export PATH="$JAVA_HOME/bin:$PATH"

Danach öffnest du ein neues Terminal-Fenster.

Testen, ob alles läuft

Leg eine Datei Main.java an:

public class Main {    public static void main(String[] args) {        System.out.println("javac läuft!");    }}

Übersetze und starte sie im selben Ordner:

javac Main.java
java Main
Ausgabe
javac läuft!

Wichtig: Beim Starten schreibst du java Main, ohne .class. Seit Java 11 kannst du kleine Programme aus einer Datei auch direkt mit java Main.java starten, dann übersetzt Java im Hintergrund selbst. Für den Unterricht solltest du trotzdem beide Schritte kennen.

Wenn jetzt Fehler wie cannot find symbol oder ';' expected kommen, ist die Einrichtung fertig. Das sind echte Compiler-Fehler in deinem Code. Was sie bedeuten, erklärt Die 10 häufigsten Java-Fehlermeldungen.

Der schnellste Ausweg: heute üben, später einrichten

Manchmal hast du heute Abend schlicht keine Zeit für PATH und JDK. Die Klassenarbeit ist in vier Wochen, und du willst endlich Code schreiben. Dann kannst du die Einrichtung verschieben.

In Jario läuft Java im Browser. Du brauchst kein JDK, keinen PATH und keine Admin-Rechte, der Code läuft auf unserem Server. Mit „Ausführen“ startest du main, mit „Prüfen“ laufen Tests, etwa „3 von 4 Tests bestanden“. Echte Compiler-Fehler erklärt dir der Hinweis „Was heißt das?“ auf Deutsch, und der KI-Tutor erklärt mit „Fehler erklären“ den Fehler in deinem eigenen Code.

Ein guter Einstieg ist der Artikel Ein- und Ausgabe in Java, danach Bedingungen mit if und else und später Methoden. Zu jedem Thema gibt es Aufgaben mit Tests. Die ersten zwei kannst du ohne Konto lösen.

Wenn du später doch lokal arbeiten musst, ist diese Anleitung immer noch da. Mehr zum Start ohne Setup findest du in Java lernen ohne Installation. Und wenn du einen Mac mit Eclipse nutzt, hilft Eclipse auf dem Mac einrichten.

Kurz gesagt

  • „javac wird nicht erkannt“ heißt: Das Terminal findet den Compiler nicht.
  • Prüfe mit java -version und javac -version, ob ein JDK fehlt oder nur der PATH.
  • Unter Windows gehört der bin-Ordner des JDK in den PATH, danach brauchst du ein neues Terminal.
  • Auf dem Mac installierst du das JDK passend zum Chip, aarch64 oder x64.

Passende Artikel zum Lernen

Weitere Beiträge