Start i konfiguracja

javac nie jest rozpoznawany? Rozwiązanie dla Windows i macOS

Opublikowano 22 października 20265 min czytania

Wpisujesz w terminalu javac Main.java, a zamiast skompilowanego pliku dostajesz komunikat o błędzie. Zdarza się to prawie każdemu przy pierwszej konfiguracji Javy. Z tego wpisu dowiesz się, co oznacza ten komunikat, jak w dwie minuty znaleźć przyczynę i jak ją usunąć w Windowsie i macOS.

Co oznacza ten komunikat

W zależności od systemu błąd wygląda trochę inaczej. W angielskim Windowsie wiersz polecenia pokazuje:

'javac' is not recognized as an internal or external command,
operable program or batch file.

W polskim Windowsie zobaczysz ten sam komunikat przetłumaczony na polski. Dokładne brzmienie zależy od języka i wersji systemu. PowerShell zgłasza z kolei, że nazwa „javac” nie została rozpoznana jako polecenie cmdlet, funkcja, plik skryptu ani program. Na Macu zobaczysz zsh: command not found: javac albo informację „Unable to locate a Java Runtime”.

Chodzi zawsze o to samo: terminal nie może znaleźć programu javac. Z twoim kodem w Javie nie ma to nic wspólnego. Kod jeszcze w ogóle nie dotarł do kompilatora.

Znajdź przyczynę w dwie minuty

Otwórz nowy terminal i wpisz te dwa polecenia:

java -version
javac -version

Możliwe są trzy przypadki:

java -versionjavac -versionPrzyczyna
BłądBłądJava nie jest zainstalowana albo w PATH w ogóle jej brakuje.
Pokazuje wersjęBłądMasz tylko środowisko uruchomieniowe (JRE), a nie JDK, albo PATH wskazuje na starą Javę.
Pokazuje wersjęPokazuje wersjęWszystko w porządku. Stary terminal po prostu jeszcze nie znał nowego PATH.

Trzeci przypadek zdarza się częściej, niż się wydaje. Terminal wczytuje PATH przy starcie. Jeśli instalujesz Javę, gdy jest otwarty, musisz go zamknąć i otworzyć ponownie. Dotyczy to także terminala w twoim IDE.

Różnica między JRE a JDK

JRE potrafi programy w Javie tylko uruchamiać. Kompilator javac jest wyłącznie w JDK. Kto kiedyś zainstalował Javę z java.com do gry albo jakiegoś programu, często ma tylko środowisko uruchomieniowe. Wtedy java działa, ale javac brakuje. Rozwiązanie: zainstaluj JDK, najlepiej aktualną wersję LTS, na przykład JDK 25.

Rozwiązanie w Windowsie

1. Zainstaluj JDK

Pobierz JDK dla Windows x64, na przykład od Oracle albo Eclipse Temurin. Według instrukcji instalacji Oracle instalator Oracle umieszcza java.exe i javac.exe w folderze javapath, który jest w PATH. W instalatorze Temurin opcja dodania do PATH jest domyślnie włączona. Oba instalatory wymagają uprawnień administratora. Jeśli ich nie masz, przeczytaj Java bez uprawnień administratora.

2. Sprawdź, gdzie jest JDK

JDK od Oracle trafia zwykle do takiego folderu:

C:\Program Files\Java\jdk-25

W środku jest podfolder bin. Właśnie tam leży javac.exe. Sprawdź w Eksploratorze plików, jak dokładnie nazywa się ten folder u ciebie.

3. Ustaw PATH ręcznie

Jeśli w nowym terminalu javac nadal nie działa, dopisz folder samodzielnie. Nazwy okien i przycisków mogą się nieco różnić w zależności od wersji Windows:

  1. Naciśnij klawisz Windows i wyszukaj „zmienne środowiskowe”.
  2. Wybierz opcję edycji zmiennych środowiskowych dla swojego konta (nie systemowych). Do tego nie potrzebujesz uprawnień administratora.
  3. W sekcji ze zmiennymi użytkownika zaznacz Path i kliknij „Edytuj”.
  4. Kliknij „Nowy” i wklej folder bin, na przykład C:\Program Files\Java\jdk-25\bin.
  5. Zatwierdź wszystkie okna przyciskiem OK.
  6. Zamknij wszystkie otwarte terminale i otwórz nowy.

Tutaj ciągle powtarzają się trzy błędy:

  • Brak \bin. PATH musi wskazywać na folder bin, a nie na sam folder JDK.
  • Stara Java jest wyżej na liście. Poleceniami where java i where javac sprawdzisz, które pliki Windows naprawdę znajduje. Jeśli przed twoim JDK stoi stara ścieżka do Javy 8, przesuń swój wpis wyżej przyciskiem „Przenieś w górę”.
  • Źle ustawione JAVA_HOME. Niektóre programy potrzebują dodatkowo zmiennej JAVA_HOME. Wskazuje ona na folder JDK bez \bin.

Rozwiązanie w macOS

Na Macu sytuacja wygląda trochę inaczej. macOS ma małe zastępcze polecenia java i javac, ale nie ma prawdziwej Javy. Bez JDK zgłaszają one, że nie znaleziono środowiska Javy.

1. Zainstaluj właściwe JDK

Najpierw sprawdź, jaki procesor ma twój Mac: menu Apple, potem „Ten Mac”. Jeśli widzisz mikroukład taki jak „Apple M2”, potrzebujesz wersji aarch64. Przy procesorze Intel wybierz x64. Oracle udostępnia dla obu plik .dmg. Instalator poprosi o hasło administratora i umieści JDK w /Library/Java/JavaVirtualMachines/. Potem zastępcze polecenia java i javac znajdą je automatycznie, więc wpis w PATH zwykle nie jest potrzebny.

2. Sprawdź, które JDK jest aktywne

/usr/libexec/java_home -V

To polecenie wypisuje wszystkie zainstalowane JDK. Jeśli twojego nie ma na liście, instalacja się nie udała.

3. Szczególny przypadek: Homebrew

Jeśli zainstalowałeś JDK poleceniem brew install openjdk, nie trafia ono do folderu systemowego. Po instalacji Homebrew wyświetla wskazówkę z poleceniem sudo ln -sfn ..., które udostępnia JDK zastępczym poleceniom systemu. Wykonaj dokładnie to polecenie albo ustaw PATH w pliku ~/.zshrc:

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

Następnie otwórz nowe okno terminala.

Sprawdź, czy wszystko działa

Utwórz plik Main.java:

public class Main {    public static void main(String[] args) {        System.out.println("javac działa!");    }}

Skompiluj go i uruchom w tym samym folderze:

javac Main.java
java Main
Wyjście
javac działa!

Ważne: przy uruchamianiu piszesz java Main, bez .class. Od Javy 11 małe programy z jednego pliku możesz też uruchomić od razu poleceniem java Main.java, a Java sama skompiluje je w tle. Na lekcje i zajęcia warto jednak znać oba kroki.

Jeśli teraz pojawiają się błędy takie jak cannot find symbol albo ';' expected, konfiguracja jest gotowa. To już prawdziwe błędy kompilacji w twoim kodzie. Co oznaczają, wyjaśnia wpis 10 najczęstszych błędów w Javie.

Najszybsze wyjście: ćwicz dziś, konfiguruj później

Czasem dziś wieczorem po prostu nie masz czasu na PATH i JDK. Sprawdzian jest za cztery tygodnie, a ty chcesz wreszcie pisać kod. Wtedy konfigurację możesz odłożyć.

W Jario Java działa w przeglądarce. Nie potrzebujesz JDK, PATH ani uprawnień administratora, kod działa na naszym serwerze. Przyciskiem „Uruchom” startujesz main, a „Sprawdź” uruchamia testy, na przykład z wynikiem „Zaliczone testy: 3 z 4”. Prawdziwe błędy kompilacji wyjaśnia po polsku podpowiedź „Co to znaczy?”, a tutor AI po kliknięciu „Wyjaśnij błąd” tłumaczy błąd w twoim własnym kodzie.

Dobrym początkiem jest artykuł Wejście i wyjście w Javie, potem Instrukcje warunkowe w Javie, a później Metody. Do każdego tematu są zadania z testami. Pierwsze dwa rozwiążesz bez konta.

Jeśli później jednak będziesz musiał pracować lokalnie, ta instrukcja nigdzie nie ucieknie. Więcej o starcie bez konfiguracji znajdziesz we wpisie Nauka Javy bez instalacji. A jeśli używasz Eclipse na Macu, pomoże ci Eclipse na Macu: konfiguracja Javy.

W skrócie

  • „javac nie jest rozpoznawany” oznacza: terminal nie może znaleźć kompilatora.
  • Poleceniami java -version i javac -version sprawdzisz, czy brakuje JDK, czy tylko wpisu w PATH.
  • W Windowsie folder bin z JDK musi być w PATH, a potem potrzebujesz nowego terminala.
  • Na Macu instalujesz JDK pasujące do procesora: aarch64 albo x64.

Powiązane artykuły do nauki

Więcej wpisów