Instalacja środowiska Java: JDK 25, JAVA_HOME i PATH
Czas czytania: 13 minut

Instalacja środowiska Java to trzy czynności: pobranie pakietu JDK, ustawienie zmiennych JAVA_HOME i PATH oraz sprawdzenie poleceniem java -version, że system widzi właściwą wersję. Po tej lekcji będziecie mieć na komputerze Javę 25 LTS w dystrybucji Eclipse Temurin, gotową pod IntelliJ IDEA, Mavena, Selenium i Playwright for Java.

To druga lekcja kursu Javy dla testerów. Pod filmem znajdziecie wersję tekstową, aktualną na 10 października 2026 roku: którą wersję wybrać, instalację na Windows, macOS i Linuxie, ustawienie zmiennych, program sprawdzający konfigurację, komunikaty typowych błędów i ćwiczenie z rozwiązaniem. Każde polecenie i każdy fragment kodu uruchomiliśmy na JDK Temurin 25.0.2 i 21.0.12.1, a komunikaty błędów skopiowaliśmy z konsoli, nie z pamięci.

Co właściwie instalujecie: JDK, JRE czy samą Javę?

Instalujecie JDK, czyli Java Development Kit. W środku jest maszyna wirtualna Javy, która uruchamia programy (polecenie java), kompilator, który zamienia kod źródłowy na kod bajtowy (polecenie javac), oraz narzędzia pomocnicze, na przykład jar i jshell. Sama maszyna wirtualna bez kompilatora to JRE. Do pisania testów JRE nie wystarczy, bo bez javac nie skompilujecie ani jednej klasy.

Java ma wielu dostawców, a wszyscy budują ją z tego samego kodu projektu OpenJDK. W kursie używamy Eclipse Temurin od fundacji Adoptium: jest bezpłatny także w zastosowaniach komercyjnych, ma instalatory na trzy systemy i długie wsparcie wersji LTS. Według strony wsparcia Adoptium z 2026 roku Temurin 25 będzie dostawał poprawki co najmniej do września 2031 roku. Inne dobre wybory to Oracle OpenJDK, Amazon Corretto czy Microsoft Build of OpenJDK. Dla nauki i testów wybór dostawcy ma drugorzędne znaczenie, ważne jest, żeby na komputerze była jedna świadomie wybrana wersja, a nie trzy przypadkowe.

Jedna uwaga, która oszczędzi Wam nerwów w następnej lekcji: IntelliJ IDEA ma wbudowane własne środowisko uruchomieniowe. Według wymagań systemowych JetBrains z 2026 roku IDE działa na dołączonym JetBrains Runtime opartym na wersji 21, ale do tworzenia aplikacji w Javie i tak potrzebny jest osobny JDK. Instalacja IDE nie zwalnia więc z instalacji Javy.

Którą wersję Javy wybrać w październiku 2026?

Wybierajcie wersję LTS, czyli z długim wsparciem. Nowa wersja Javy wychodzi co pół roku, w marcu i we wrześniu, ale tylko co czwarta dostaje wieloletnie poprawki. Według strony projektu JDK w OpenJDK wersja 27 weszła 15 września 2026 roku i nie jest wersją LTS, a najnowszą wersją LTS pozostaje Java 25 z 16 września 2025 roku. W październiku 2026 rozsądny wybór do kursu i do nowego projektu testów to JDK 25 LTS. JDK 21 LTS zostawcie wtedy, gdy projekt w Waszej firmie jest na nim zbudowany i nie możecie go podnieść.

Wersja Premiera Typ Wsparcie (Oracle, Premier) Temurin według Adoptium
Java 21 wrzesień 2023 LTS do września 2028 co najmniej do grudnia 2029
Java 25 wrzesień 2025 LTS do września 2030 co najmniej do września 2031
Java 26 marzec 2026 zwykła do września 2026 koniec wsparcia we wrześniu 2026
Java 27 15 września 2026 zwykła do marca 2027 do marca 2027
Java 29 wrzesień 2027 (plan) LTS do września 2032 (plan) jeszcze brak

Tabela łączy dwa źródła: harmonogram wsparcia Oracle Java SE oraz stronę wsparcia Adoptium, oba odczytane 10 października 2026 roku. Daty u różnych dostawców się różnią, bo każdy sam decyduje, jak długo łata swoją dystrybucję.

Java w październiku 2026 w czterech liczbach

25

najnowsza wersja LTS, premiera 16.09.2025

27

najnowsza wersja w ogóle, premiera 15.09.2026, bez LTS

IX 2031

minimalny koniec wsparcia Temurin 25 według Adoptium

8 GB

RAM, który JetBrains podaje jako wymaganie IntelliJ IDEA

Źródło: OpenJDK, projekt JDK, 2026; Adoptium, strona wsparcia, 2026; JetBrains, wymagania systemowe IntelliJ IDEA, 2026.

Instalacja środowiska Java na Windows

Najprostsza droga to instalator MSI ze strony Adoptium Temurin Releases: wybieracie system Windows, architekturę x64, pakiet JDK i wersję 25 LTS. Według dokumentacji instalatora Adoptium domyślnie trafia on do katalogu C:\Program Files\Eclipse Adoptium i sam dopisuje Javę do zmiennej PATH. Zmienna JAVA_HOME nie jest jednak zaznaczona domyślnie. Na ekranie Custom Setup kliknijcie pozycję ustawiającą JAVA_HOME i wybierzcie instalację tej funkcji. To jeden klik, który zaoszczędzi Wam później szukania przyczyny błędu Mavena.

Jeśli wolicie terminal, ten sam pakiet zainstaluje menedżer winget, wbudowany w Windows 10 i 11. Identyfikator pakietu podaje strona instalacji Adoptium:

winget install EclipseAdoptium.Temurin.25.JDK

Gdy JAVA_HOME trzeba ustawić ręcznie, zróbcie to w oknie zmiennych środowiskowych:

  1. Naciśnijcie klawisz Windows i wpiszcie Edytuj zmienne środowiskowe systemu.
  2. Kliknijcie przycisk Zmienne środowiskowe.
  3. W sekcji zmiennych systemowych kliknijcie Nowa, w polu nazwy wpiszcie JAVA_HOME, a jako wartość podajcie katalog JDK, ten, w którym leży podkatalog bin, na przykład C:\Program Files\Eclipse Adoptium\jdk-25.0.4.1-hotspot. Dokładną nazwę katalogu sprawdźcie w Eksploratorze plików.
  4. Zaznaczcie zmienną Path, kliknijcie Edytuj, potem Nowy i dopiszcie %JAVA_HOME%\bin. Przesuńcie ten wpis wyżej niż stare wpisy z Javą, jeśli takie są.
  5. Zamknijcie wszystkie okna terminala i otwórzcie nowe. Stare okno nie widzi zmian.

Najczęstsza pomyłka na Windows to JAVA_HOME wskazujące na podkatalog bin. Zmienna ma wskazywać katalog nadrzędny, a bin dopisujecie dopiero w PATH.

Instalacja środowiska Java na macOS

Na macOS do wyboru są dwie drogi. Pierwsza to pakiet PKG ze strony Adoptium: dwuklik, kilka razy Continue i gotowe. Według dokumentacji Adoptium pakiet instaluje JDK w katalogu /Library/Java/JavaVirtualMachines/temurin-25.jdk. Druga droga to Homebrew, wygodna, jeśli i tak go używacie:

brew install --cask temurin@25

macOS ma polecenie /usr/libexec/java_home, które zwraca ścieżkę do zainstalowanego JDK. Dzięki niemu nie wpisujecie ścieżki ręcznie. Dopiszcie dwie linie na końcu pliku ~/.zshrc (domyślna powłoka od macOS Catalina to zsh), zapiszcie plik i otwórzcie nowe okno terminala:

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

Sprawdziliśmy to sami

Polecenie /usr/libexec/java_home -v 21 nie zawsze oznacza „dokładnie Java 21”. Na komputerze z macOS 15.7, na którym był tylko JDK 25, zwróciło ścieżkę do JDK 25, bez żadnego ostrzeżenia. Jeśli więc trzymacie kilka wersji i chcecie mieć pewność, którą ustawiliście, po zmianie zawsze uruchomcie java -version, zamiast ufać samemu numerowi w .zshrc.

Instalacja środowiska Java na Linuxie

Na Debianie i Ubuntu Adoptium utrzymuje własne repozytorium pakietów. Według strony instalacji na Linuxa najpierw dodajecie klucz i repozytorium (dokładne polecenia dla Waszej dystrybucji są na stronie Adoptium o pakietach dla Linuxa), a potem instalujecie pakiet poleceniem apt. Na Fedorze i RHEL odpowiednikiem jest repozytorium RPM opisane na tej samej stronie.

sudo apt update
sudo apt install temurin-25-jdk

Pakiety z repozytorium same rejestrują java i javac w systemie alternatyw, więc PATH zwykle nie wymaga zmian. Zostaje JAVA_HOME, którego potrzebuje Maven i wiele narzędzi CI. Poniższa linia w ~/.bashrc wylicza katalog JDK z faktycznej lokalizacji kompilatora:

export JAVA_HOME=$(dirname $(dirname $(readlink -f $(which javac))))

Linux jest tu najbardziej uprzejmy z całej trójki: zwykle robi wszystko sam i czeka tylko, aż przestaniecie mu przeszkadzać trzema różnymi JDK z trzech różnych tutoriali. Jeśli w systemie jest więcej wersji, przełączycie domyślną poleceniem sudo update-alternatives --config java.

Jak sprawdzić, czy instalacja środowiska się udała?

Instalacja środowiska jest skończona dopiero wtedy, gdy trzy proste polecenia w nowym oknie terminala zwracają to, czego się spodziewacie. Na macOS i Linuxie:

java -version
javac -version
echo $JAVA_HOME

Na Windows w PowerShell ostatnie polecenie ma postać echo $env:JAVA_HOME, a w klasycznym wierszu poleceń echo %JAVA_HOME%. Wynik z naszego komputera z Temurin 25 wyglądał tak:

openjdk version "25.0.2" 2026-01-20 LTS
OpenJDK Runtime Environment Temurin-25.0.2+10 (build 25.0.2+10-LTS)
OpenJDK 64-Bit Server VM Temurin-25.0.2+10 (build 25.0.2+10-LTS, mixed mode, sharing)
javac 25.0.2

U Was numer poprawki może być wyższy, na przykład 25.0.4.1, bo Adoptium wydaje aktualizacje co kwartał. Ważna jest pierwsza liczba i to, że java i javac pokazują tę samą wersję. Różne wersje oznaczają, że w PATH siedzi jeszcze stara Java.

Drugi test jest ciekawszy, bo to Wasz pierwszy kawałek kodu. Zapiszcie poniższy plik jako SprawdzJave.java. Program wypisuje wersję, dostawcę, katalog JDK i wartość JAVA_HOME, a na końcu sprawdza, czy to co najmniej Java 25, na której prowadzimy kurs:

public class SprawdzJave {
    public static void main(String[] args) {
        System.out.println("Wersja Javy: " + System.getProperty("java.version"));
        System.out.println("Dostawca:    " + System.getProperty("java.vendor"));
        System.out.println("Katalog JDK: " + System.getProperty("java.home"));
        System.out.println("JAVA_HOME:   " + System.getenv("JAVA_HOME"));
        int wersja = Runtime.version().feature();
        if (wersja >= 25) {
            System.out.println("OK: Java " + wersja + " spełnia wymaganie kursu, czyli Javę 25.");
        } else {
            System.out.println("Za stara Java (" + wersja + "). Zainstalujcie JDK 25 LTS.");
        }
    }
}

Od Javy 11 pojedynczy plik źródłowy można uruchomić bez osobnej kompilacji, wystarczy podać nazwę pliku z rozszerzeniem: java SprawdzJave.java. Tak wygląda wynik na macOS po instalacji z pakietu PKG (numer poprawki u Was może być wyższy):

Wersja Javy: 25.0.2
Dostawca:    Eclipse Adoptium
Katalog JDK: /Library/Java/JavaVirtualMachines/temurin-25.jdk/Contents/Home
JAVA_HOME:   /Library/Java/JavaVirtualMachines/temurin-25.jdk/Contents/Home
OK: Java 25 spełnia wymaganie kursu, czyli Javę 25.

Jeśli w linii JAVA_HOME zobaczycie null, zmienna nie jest ustawiona w tym oknie terminala. Jeśli katalog JDK i JAVA_HOME wskazują różne miejsca, terminal uruchamia inną Javę niż ta, której będą używać Maven i Gradle. Oba przypadki naprawicie według sekcji o Waszym systemie.

Jakie błędy pojawiają się najczęściej?

Poniższe komunikaty to najczęstsze przeszkody przy pierwszej instalacji. Te oznaczone jako odtworzone wywołaliśmy celowo na macOS z JDK 25 i 21, pozostałe to standardowe komunikaty systemów Windows i macOS.

Komunikat Co oznacza Jak naprawić
zsh: command not found: javac (odtworzone) katalogu bin JDK nie ma w PATH albo zainstalowaliście samo JRE dopiszcie $JAVA_HOME/bin do PATH i otwórzcie nowe okno terminala
'java' is not recognized as an internal or external command Windows nie widzi Javy w PATH; w polskim Windows: „nie jest rozpoznawane jako polecenie wewnętrzne lub zewnętrzne” dodajcie %JAVA_HOME%\bin do zmiennej Path, zamknijcie i otwórzcie terminal
Unable to locate a Java Runtime macOS ma tylko systemową nakładkę na polecenie java, a żadnego JDK zainstalujcie JDK z pakietu PKG albo przez Homebrew
The JAVA_HOME environment variable is not defined correctly (odtworzone) Maven dostał JAVA_HOME ze ścieżką do bin albo do nieistniejącego katalogu ustawcie JAVA_HOME na katalog nadrzędny wobec bin
UnsupportedClassVersionError ... class file version 69.0 (odtworzone) kod skompilowany Javą 25 uruchamiacie starszą Javą uruchamiajcie tą samą wersją, którą kompilujecie, albo kompilujcie z --release 21

Ostatni błąd warto zobaczyć w całości, bo wygląda groźnie, a mówi wprost, co się stało. Skompilowaliśmy SprawdzJave.java kompilatorem z JDK 25 i uruchomiliśmy wynik na JDK 21:

Error: LinkageError occurred while loading main class SprawdzJave
	java.lang.UnsupportedClassVersionError: SprawdzJave has been compiled by a more recent version of the Java Runtime (class file version 69.0), this version of the Java Runtime only recognizes class file versions up to 65.0

Ściąga z numerami

Numer wersji pliku klasy to wersja Javy powiększona o 44. Według specyfikacji maszyny wirtualnej Java SE 25 (rozdział 4.1, 2025) Java 25 obsługuje główne numery wersji od 45 do 69, więc Java 21 zapisuje pliki w wersji 65, a Java 25 w wersji 69. Gdy w komunikacie widzicie „69.0” i „up to 65.0”, od razu wiecie, że ktoś skompilował kod Javą 25, a uruchamia Javą 21. Ta ściąga skraca szukanie przyczyny z godziny do kilku sekund, szczególnie na serwerze CI, gdzie nikt nie pamięta, co zainstalował.

Po co testerowi automatyzującemu dobrze ustawiona Java?

Bo każde narzędzie z Waszego przyszłego warsztatu pyta system o Javę po swojemu. Maven i Gradle czytają JAVA_HOME. IntelliJ IDEA pyta o katalog JDK przy tworzeniu projektu. Serwer CI, na przykład GitHub Actions z akcją setup-java, instaluje JDK w wersji, którą wpiszecie w konfiguracji. Jeśli te trzy miejsca wskazują różne wersje, test, który przechodzi u Was, wywraca się w pipeline z komunikatem z tabeli wyżej. Konfiguracja Javy to pierwszy element środowiska testowego, a nie formalność przed kursem.

Sprawdzenie, której Javy używa Maven, to jedno polecenie. Wynik z naszego komputera:

mvn -v
Apache Maven 3.9.12 (848fbb4bf2d427b72bdb2471c22fced7ebd9a7a1)
Maven home: /opt/homebrew/Cellar/maven/3.9.12/libexec
Java version: 25.0.2, vendor: Eclipse Adoptium, runtime: /Library/Java/JavaVirtualMachines/temurin-25.jdk/Contents/Home

Kto w projekcie testów czyta Waszą konfigurację Javy

Maven i Gradle

biorą JDK z JAVA_HOME; zła wartość zatrzymuje build, zanim ruszy pierwszy test

IntelliJ IDEA

przy nowym projekcie pyta o JDK; wskażcie ten sam katalog co w JAVA_HOME

Selenium 4

Selenium Manager sam dobiera sterownik przeglądarki, ale testy kompiluje i uruchamia JDK z Waszej konfiguracji

Pipeline CI

wersję JDK wpisujecie w konfiguracji; trzymajcie ją równą wersji z pom.xml

W naszej praktyce szkoleniowej to częsty scenariusz pierwszego dnia: uczestnik ma Javę z dawnego projektu w PATH, nową w IDE i trzecią w JAVA_HOME. W Quality Island przeszkoliliśmy już ponad 2 500 specjalistów i dlatego radzimy zawsze tę samą kolejność: najpierw jedna pewna Java, potem kod. Jeśli zaczynacie programowanie od zera i wolicie przejść ten etap z trenerem, służy do tego szkolenie wprowadzenie do programowania od podstaw w Javie.

Ćwiczenie z rozwiązaniem

Zadanie: przygotujcie komputer na projekt, w którym część testów działa na Javie 21. Zainstalujcie obok JDK 25 także JDK 21 LTS, przełączcie JAVA_HOME na 21, uruchomcie SprawdzJave.java i wróćcie do 25. Na koniec skompilujcie program Javą 25 tak, żeby dało się go uruchomić na Javie 21.

Rozwiązanie na macOS. Instalacja drugiej wersji i przełączenie w bieżącym oknie terminala:

brew install --cask temurin@21
export JAVA_HOME=$(/usr/libexec/java_home -v 21)
export PATH="$JAVA_HOME/bin:$PATH"
java -version
java SprawdzJave.java

Na Windows zmieniacie wartość JAVA_HOME w oknie zmiennych środowiskowych na katalog JDK 21 i otwieracie nowy terminal. Na Linuxie wybieracie wersję poleceniem sudo update-alternatives --config java i aktualizujecie JAVA_HOME. Druga część zadania to flaga --release, która każe kompilatorowi 25 wygenerować pliki klas dla Javy 21:

javac --release 21 -d out SprawdzJave.java
java -cp out SprawdzJave

Tak skompilowana klasa uruchamia się na JDK 21 bez UnsupportedClassVersionError, co sprawdziliśmy na Temurin 21.0.12.1. Program wypisze wtedy „Za stara Java (21)”, bo kurs wymaga Javy 25, i tak ma być: ćwiczenie pokazuje pracę z dwiema wersjami, a nie zmianę wersji kursu. Ta sama flaga w Mavenie nazywa się maven.compiler.release i pokażemy ją w następnej lekcji.

Gdzie jesteście w kursie?

Instalacja środowiska Java to druga z 18 lekcji kursu. Pełną listę lekcji macie w lekcji wprowadzającej do języka Java, a pierwsze osiem wygląda tak:

Lekcja Temat Co umiecie po niej
1 Wprowadzenie do języka Java wiecie, po co testerowi Java i jak wygląda kurs
2 Instalacja środowiska (ta lekcja) macie działające JDK, JAVA_HOME i PATH
3 IntelliJ IDEA: pierwszy projekt zakładacie projekt Maven z testem JUnit
4 Java: pierwszy program kompilujecie i uruchamiacie kod z terminala
5 Komentarze w kodzie piszecie komentarze i Javadoc
6 Typy danych w Javie dobieracie typ do danych testowych
7 Operatory matematyczne liczycie i porównujecie wartości
8 Operatory logiczne budujecie warunki do asercji
Poprzednia lekcja1. Wprowadzenie do języka JavaSpis kursuWszystkie lekcje kursu JavyNastępna lekcja3. IntelliJ IDEA: pierwszy projekt

Jeśli zastanawiacie się, czy Java w ogóle przyda się na rynku pracy testera, zajrzyjcie na QA Board, platformę profili kompetencyjnych QA, gdzie widać, jakich umiejętności szukają firmy. A gdy środowisko już działa, kolejnym krokiem jest automatyzacja: szkolenie z automatyzacji testów w Selenium WebDriver i automatyzacja testów z Playwright w Javie startują dokładnie od takiej konfiguracji, jaką macie teraz.

Co zabrać z tego artykułu

01Instalujecie JDK, nie JRE: bez kompilatora javac nie napiszecie testów.

02W październiku 2026 wybierzcie JDK 25 LTS w dystrybucji Temurin; Java 27 jest nowsza, ale bez długiego wsparcia.

03JAVA_HOME wskazuje katalog JDK, a PATH jego podkatalog bin. Instalator MSI na Windows nie ustawia JAVA_HOME domyślnie.

04Sprawdzenie to java -version, javac -version i nowe okno terminala. Obie wersje muszą się zgadzać.

05„class file version 69.0” oznacza kod z Javy 25 uruchamiany starszą Javą; flaga --release 21 to rozwiązuje.

Źródło: OpenJDK, Oracle, Adoptium i JetBrains, stan na 10.10.2026; polecenia i komunikaty sprawdzone na Temurin 25.0.2 i 21.0.12.1.

Chcecie przejść przez Javę od instalacji do pierwszych testów automatycznych z trenerem, który odpowie na Wasze pytania na bieżąco? Na szkoleniu Java dla testerów pracujecie na tym samym zestawie: JDK, IntelliJ IDEA, Maven i JUnit.

Zobacz szkolenie z Javy


Powiązane na blogu Quality Island

Pełna lista źródeł

Co o tym sądzisz?

Dodaj komentarz

Bądź na bieżąco
Strefa QA, portal z eksperckimi artykułami o jakości oprogramowania
Bądź na bieżąco
Szkolenie AI Act w wyrobach medycznych: testy i dokumentacja AI pod MDR
AI Act w wyrobach medycznych
AI Act w wyrobach medycznych: testy i dokumentacja AI pod MDR

1690,00 PLN

30.11.26, 18.01.27, 08.03.27
1 dzień
Szkolenie AI Act w bankowości i ubezpieczeniach: scoring kredytowy, wycena ubezpieczeń i FRIA
AI Act w bankowości i ubezpieczeniach
AI Act w bankowości i ubezpieczeniach: scoring kredytowy, wycena ubezpieczeń i FRIA

1690,00 PLN

27.11.26, 15.01.27, 05.03.27
1 dzień
Szkolenie Testowanie systemów AI wysokiego ryzyka pod AI Act: dokumentacja testowa i QMS dla dostawców
Testowanie systemów AI wysokiego ryzyka pod AI Act
Testowanie systemów AI wysokiego ryzyka pod AI Act: dokumentacja testowa i QMS dla dostawców

2390,00 PLN

26.11.26, 14.01.27, 04.03.27
2 dni
Popularne artykuły
Język Gherkin: co to jest i jak go używać w testowaniu oprogramowania, grafika Quality Island
Język Gherkin: co to jest i jak go używać w testowaniu oprogramowania
Smoke test: co to jest i czym różni się od sanity testu, grafika Quality Island
Smoke test: co to jest, kiedy go uruchamiać i czym różni się od sanity testu
Jak zostać testerem oprogramowania: ścieżka krok po kroku, grafika Quality Island
Jak zostać testerem oprogramowania: ścieżka krok po kroku bez dyplomu informatyka
Najnowsze artykuły
Agentic testing w pracy zespołu QA, co się zmienia w testowaniu z agentami AI
Agentic testing: czy Wasza praca właśnie się zmienia, czy znika
Ile kosztują testy oprogramowania, cennik i czynniki ceny, Quality Island
Ile kosztują testy oprogramowania: cennik i czynniki ceny
Strategia testowania w organizacji, strategia jakości na przykładzie case PKO BP, Quality Island
Strategia testowania w organizacji: czego uczy nas case PKO BP
Popularne kategorie