🚀 Jak zainstalować Javę z apt-get na Ubuntu 20.04
Java stanowi fundamentalną technologię dla wielu aplikacji serwerowych, narzędzi programistycznych i systemów enterprise. Instalacja odpowiedniej wersji Javy w systemie Ubuntu 20.04 to często jeden z pierwszych kroków przy konfiguracji środowiska deweloperskiego lub hostingowego. Ten przewodnik przeprowadzi Cię przez proces instalacji różnych implementacji Javy z wykorzystaniem systemowego menedżera pakietów apt-get.
⚡ Ekspresowe Podsumowanie:
- Dostępne opcje: OpenJDK (domyślna, open source) i Oracle Java (komercyjna) z wieloma wersjami do wyboru
- Podstawowa instalacja OpenJDK 11:
sudo apt update && sudo apt install openjdk-11-jdk
- Weryfikacja instalacji:
java -version
ijavac -version
potwierdzą poprawność instalacji - Zarządzanie wersjami: Narzędzie
update-alternatives
umożliwia łatwe przełączanie między zainstalowanymi wersjami
🗺️ Spis Treści - Twoja Mapa Drogowa
📚 Wprowadzenie do Javy i dostępnych implementacji
Przed przystąpieniem do instalacji, warto zrozumieć podstawowe pojęcia związane z Javą oraz dostępne warianty i implementacje tej technologii.
Czym jest Java?
Java to:
- Język programowania - obiektowy język o szerokiej gamie zastosowań
- Platforma uruchomieniowa - środowisko umożliwiające uruchamianie aplikacji napisanych w Javie
- Ekosystem narzędzi i bibliotek - bogaty zbiór frameworków, bibliotek i rozwiązań
Kluczową zaletą Javy jest jej przenośność - programy napisane w tym języku mogą być uruchamiane na dowolnym systemie operacyjnym posiadającym maszynę wirtualną Javy (JVM).
Komponenty Javy
Instalując Javę, możesz wybrać między dwoma głównymi komponentami:
-
JRE (Java Runtime Environment) - Środowisko uruchomieniowe wymagane do uruchamiania aplikacji Java
- Zawiera maszynę wirtualną Javy (JVM)
- Zawiera biblioteki standardowe
- Nie zawiera narzędzi programistycznych
-
JDK (Java Development Kit) - Pełne środowisko programistyczne
- Zawiera wszystko, co JRE
- Dodatkowo zawiera kompilator (javac), debugger i inne narzędzia deweloperskie
- Niezbędne, jeśli zamierzasz tworzyć aplikacje w Javie
✨ Pro Tip: Jeśli planujesz tylko uruchamiać aplikacje Java, wystarczy JRE. Jeśli jednak będziesz programować lub kompilować kod, wybierz JDK, który zawiera również JRE.
Dostępne implementacje
Na Ubuntu 20.04 możesz zainstalować różne implementacje Javy:
Implementacja | Licencja | Zalety | Wady |
---|---|---|---|
OpenJDK | Open Source (GPLv2 + Classpath) | Darmowa, dobrze zintegrowana z systemem, regularnie aktualizowana | Może mieć niewielkie różnice w porównaniu do Oracle Java |
Oracle Java | Komercyjna (bezpłatna dla użytku osobistego) | Oficjalna implementacja, pełna zgodność | Ograniczenia licencyjne dla zastosowań komercyjnych |
Eclipse Adoptium (dawniej AdoptOpenJDK) | Open Source | Wysokiej jakości buildy OpenJDK, długoterminowe wsparcie | Wymaga dodatkowego repozytorium |
Amazon Corretto | Open Source | Optymalizacja pod kątem chmury AWS | Wymaga manualnej instalacji |
✨ Pro Tip: Dla większości zastosowań OpenJDK jest rekomendowanym wyborem ze względu na łatwość instalacji, kompatybilność z Ubuntu i brak ograniczeń licencyjnych dla zastosowań komercyjnych.
Wersje Javy
Java ewoluowała przez lata, a każda wersja wprowadzała nowe funkcje:
- Java 8 (LTS) - Wprowadzenie wyrażeń lambda, strumieni, nowa data/czas API
- Java 11 (LTS) - Usprawnienia w zarządzaniu pamięcią, nowe API HTTP
- Java 17 (LTS) - Sealed classes, pattern matching, ulepszone zarządzanie pamięcią
- Java 21 (LTS) - Virtual threads, pattern matching dla switch, sequential collections
Uwaga: Wersje LTS (Long Term Support) to wydania z długoterminowym wsparciem, zalecane dla zastosowań produkcyjnych. Na Ubuntu 20.04, OpenJDK 11 jest domyślną wersją, ale możesz zainstalować również inne, w tym OpenJDK 8 i nowsze wersje.
💡 Instalacja OpenJDK za pomocą apt-get
OpenJDK to najprostsza i zalecana implementacja Javy dla większości użytkowników Ubuntu. Jest dostępna bezpośrednio w oficjalnych repozytoriach i oferuje kilka wersji do wyboru.
Sprawdzenie dostępnych wersji
Przed instalacją warto sprawdzić, jakie wersje OpenJDK są dostępne w repozytoriach:
apt search openjdk
Wynik tego polecenia zawiera listę dostępnych pakietów, w tym różne wersje JDK i JRE.
Instalacja OpenJDK 11 (domyślna dla Ubuntu 20.04)
Aby zainstalować OpenJDK 11 JDK (zawierające narzędzia deweloperskie):
sudo apt update
sudo apt install openjdk-11-jdk
Jeśli potrzebujesz tylko środowiska uruchomieniowego (JRE):
sudo apt update
sudo apt install openjdk-11-jre
Instalacja alternatywnych wersji OpenJDK
OpenJDK 8
sudo apt update
sudo apt install openjdk-8-jdk
OpenJDK 17 (z dodatkowego repozytorium)
OpenJDK 17 nie jest domyślnie dostępne w Ubuntu 20.04, ale można je zainstalować dodając odpowiednie repozytorium:
sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt update
sudo apt install openjdk-17-jdk
✨ Pro Tip: Możesz zainstalować równolegle kilka wersji Javy i przełączać się między nimi w zależności od potrzeb konkretnych aplikacji. Ubuntu posiada wbudowany system zarządzania alternatywnymi wersjami, który omówimy w dalszej części artykułu.
Weryfikacja instalacji
Po instalacji warto zweryfikować, czy Java została poprawnie zainstalowana:
java -version
Przykładowy wynik dla OpenJDK 11:
openjdk version "11.0.11" 2021-04-20
OpenJDK Runtime Environment (build 11.0.11+9-Ubuntu-0ubuntu2.20.04)
OpenJDK 64-Bit Server VM (build 11.0.11+9-Ubuntu-0ubuntu2.20.04, mixed mode, sharing)
Sprawdź także wersję kompilatora (jeśli zainstalowałeś JDK):
javac -version
🛠️ Konfiguracja zmiennych środowiskowych
Po instalacji warto skonfigurować zmienne środowiskowe, które są używane przez Javę i aplikacje bazujące na tej technologii.
Zmienna JAVA_HOME
Wiele aplikacji korzysta ze zmiennej środowiskowej JAVA_HOME
, która wskazuje na katalog instalacyjny Javy. Aby ją skonfigurować:
- Najpierw zlokalizuj katalog instalacyjny Javy:
update-alternatives --config java
To polecenie pokaże ścieżkę do zainstalowanej Javy, np. /usr/lib/jvm/java-11-openjdk-amd64/bin/java
.
Ścieżką do JAVA_HOME
będzie katalog nadrzędny dla /bin/java
, czyli w tym przypadku: /usr/lib/jvm/java-11-openjdk-amd64
.
- Dodaj zmienną
JAVA_HOME
do pliku/etc/environment
:
sudo echo "JAVA_HOME=\"/usr/lib/jvm/java-11-openjdk-amd64\"" >> /etc/environment
- Załaduj nową zmienną do bieżącej sesji:
source /etc/environment
- Sprawdź, czy zmienna została poprawnie ustawiona:
echo $JAVA_HOME
Dodatkowe zmienne środowiskowe
Dla niektórych zastosowań przydatne mogą być również inne zmienne:
JRE_HOME
- wskazująca na katalog JRE (zazwyczaj$JAVA_HOME/jre
)PATH
- powinna zawierać ścieżkę do katalogu z binariami Javy ($JAVA_HOME/bin
)
Uwaga: W Ubuntu zmienne środowiskowe dla wszystkich użytkowników najlepiej definiować w pliku
/etc/environment
lub w skryptach w katalogu/etc/profile.d/
. Dla pojedynczego użytkownika można je zdefiniować w pliku~/.bashrc
lub~/.profile
.
🔀 Zarządzanie wieloma wersjami Javy
Jedną z zalet systemu Ubuntu jest łatwość zarządzania wieloma zainstalowanymi wersjami Javy i przełączania się między nimi.
System alternatyw w Ubuntu
Ubuntu używa mechanizmu update-alternatives
do zarządzania wieloma wersjami tego samego oprogramowania. Pozwala to na łatwe przełączanie między różnymi implementacjami Javy.
Przełączanie między wersjami Javy
Aby przełączyć domyślną wersję Javy:
sudo update-alternatives --config java
System wyświetli listę zainstalowanych wersji Javy i poprosi o wybór domyślnej:
There are 2 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
------------------------------------------------------------
0 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 auto mode
1 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 manual mode
* 2 /usr/lib/jvm/java-8-openjdk-amd64/bin/java 1081 manual mode
Press <enter> to keep the current choice[*], or type selection number:
Podobnie możesz skonfigurować domyślny kompilator Java:
sudo update-alternatives --config javac
Oraz inne narzędzia Java, takie jak javadoc
, jar
, itd.
✨ Pro Tip: W skryptach lub poleceniach można jawnie określić, której wersji Javy chcemy użyć, podając pełną ścieżkę do binariów, np. /usr/lib/jvm/java-8-openjdk-amd64/bin/java -jar aplikacja.jar
.
Automatyczne przełączanie dla konkretnych projektów
Dla deweloperów pracujących z wieloma projektami wymagającymi różnych wersji Javy, przydatne mogą być narzędzia takie jak:
- SDKMAN! - narzędzie do zarządzania równoległymi wersjami SDK dla JVM
- jEnv - lżejsze narzędzie do zarządzania wersjami Javy na poziomie katalogu
Instalacja SDKMAN!:
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
Z SDKMAN! możesz łatwo instalować i przełączać się między różnymi wersjami Javy:
sdk list java # lista dostępnych wersji
sdk install java 11.0.11.hs-adpt # instalacja konkretnej wersji
sdk use java 11.0.11.hs-adpt # tymczasowe przełączenie
sdk default java 11.0.11.hs-adpt # ustawienie domyślnej wersji
🔒 Instalacja Oracle Java (alternatywne podejście)
Oracle Java jest oficjalną implementacją od twórców języka. W przeciwieństwie do OpenJDK, nie jest dostępna bezpośrednio w repozytoriach Ubuntu ze względu na ograniczenia licencyjne.
Uwaga: Od Java 11, Oracle wprowadził nowy model licencjonowania. Oracle JDK jest darmowy do użytku osobistego, deweloperskiego i do prototypowania, ale komercyjne zastosowania produkcyjne mogą wymagać płatnej licencji. Zawsze sprawdź aktualne warunki licencji na stronie Oracle przed wdrożeniem produkcyjnym.
Instalacja manualna
-
Pobierz pakiet instalacyjny z oficjalnej strony Oracle: https://www.oracle.com/java/technologies/javase-downloads.html
-
Rozpakuj pobrany archiwum do wybranej lokalizacji, np.
/opt
:
sudo mkdir -p /opt/java
sudo tar -zxf jdk-11.0.11_linux-x64_bin.tar.gz -C /opt/java
- Dodaj nową wersję Javy do systemu alternatyw:
sudo update-alternatives --install /usr/bin/java java /opt/java/jdk-11.0.11/bin/java 1
sudo update-alternatives --install /usr/bin/javac javac /opt/java/jdk-11.0.11/bin/javac 1
- Wybierz nową wersję jako domyślną:
sudo update-alternatives --config java
- Skonfiguruj zmienną JAVA_HOME:
echo 'JAVA_HOME="/opt/java/jdk-11.0.11"' | sudo tee -a /etc/environment
source /etc/environment
Alternatywne podejście: repozytorium zewnętrzne
Istnieją również nieoficjalne repozytoria zawierające Oracle Java. Jednak ze względu na politykę licencyjną Oracle, ich użycie może być problematyczne i nie jest oficjalnie rekomendowane.
🚫 Rozwiązywanie typowych problemów
Podczas instalacji i konfiguracji Javy mogą pojawić się różne problemy. Oto rozwiązania najczęstszych z nich.
Problem: Brak Javy po instalacji
Jeśli po instalacji polecenie java -version
nie działa lub pokazuje błąd:
- Sprawdź, czy pakiet został poprawnie zainstalowany:
dpkg -l | grep openjdk
- Jeśli pakiet jest zainstalowany, sprawdź konfigurację alternatyw:
sudo update-alternatives --config java
- Upewnij się, że katalog z binariami Javy jest w zmiennej PATH:
echo $PATH
Problem: Błędy kompilacji związane z wersją Javy
Jeśli projekt wymaga konkretnej wersji Javy, a kompilacja kończy się błędami:
- Sprawdź wymaganą wersję Javy dla projektu
- Zainstaluj odpowiednią wersję
- Przełącz się na tę wersję za pomocą
update-alternatives
lub SDKMAN! - Ustaw odpowiednią zmienną
JAVA_HOME
Problem: Aplikacja zgłasza błąd "JAVA_HOME is not set"
Gdy aplikacja wymaga zmiennej JAVA_HOME
, a nie jest ona ustawiona:
- Ustaw zmienną ręcznie:
export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:/bin/java::")
- Dodaj powyższą linię do pliku
~/.bashrc
, aby była dostępna przy każdym logowaniu - Zweryfikuj ustawienie:
echo $JAVA_HOME
ls -la $JAVA_HOME
Problem: Konflikt wersji Javy
Gdy różne aplikacje wymagają różnych wersji Javy:
- Zainstaluj wszystkie wymagane wersje
- Używaj skryptów opakowujących, które ustawiają odpowiednie zmienne środowiskowe przed uruchomieniem konkretnej aplikacji
- Rozważ użycie narzędzi takich jak Docker do izolacji aplikacji wymagających różnych środowisk
🧹 Odinstalowanie Javy
Jeśli potrzebujesz usunąć zainstalowaną wersję Javy, możesz to zrobić za pomocą apt:
Odinstalowanie OpenJDK
# Sprawdź zainstalowane pakiety OpenJDK
dpkg --list | grep -i openjdk
# Usuń konkretny pakiet
sudo apt-get remove --purge openjdk-11-jdk
sudo apt-get remove --purge openjdk-11-jre
# Usuń osierocone pakiety
sudo apt-get autoremove
# Usuń pozostałe pliki konfiguracyjne
sudo apt-get clean
Usunięcie ręcznie zainstalowanej Javy
Jeśli Java została zainstalowana ręcznie:
- Usuń wpisy z systemu alternatyw:
sudo update-alternatives --remove java /opt/java/jdk-11.0.11/bin/java
sudo update-alternatives --remove javac /opt/java/jdk-11.0.11/bin/javac
- Usuń katalog instalacyjny:
sudo rm -rf /opt/java/jdk-11.0.11
- Usuń lub zaktualizuj zmienne środowiskowe w
/etc/environment
lub innych plikach konfiguracyjnych.
📈 Najlepsze praktyki i zalecenia
Na zakończenie warto podsumować kilka najlepszych praktyk dotyczących instalacji i zarządzania Javą w systemie Ubuntu.
Zalecenia dotyczące wyboru wersji
- Dla aplikacji produkcyjnych - wybieraj wersje LTS (8, 11, 17, 21)
- Dla nowych projektów - używaj najnowszej dostępnej wersji LTS
- Dla projektów legacy - dostosuj wersję Javy do wymagań projektu
Strategie aktualizacji
- Regularnie instaluj aktualizacje bezpieczeństwa:
sudo apt update && sudo apt upgrade
- Przed aktualizacją do nowej głównej wersji Javy:
- Przetestuj aplikację z nową wersją w środowisku testowym
- Sprawdź kompatybilność wszystkich używanych bibliotek
- Przygotuj plan powrotu w przypadku problemów
Zarządzanie pamięcią
Java VM oferuje różne opcje konfiguracji pamięci, które mogą być dostosowane do konkretnych potrzeb:
# Przykład ustawienia maksymalnej wielkości sterty
java -Xmx2G -jar aplikacja.jar
# Przykład ustawienia początkowej i maksymalnej wielkości sterty
java -Xms1G -Xmx2G -jar aplikacja.jar
Dostosowanie tych parametrów może znacząco wpłynąć na wydajność aplikacji, szczególnie na serwerach z ograniczonymi zasobami.
Narzędzia monitorowania
Warto zapoznać się z narzędziami do monitorowania aplikacji Java:
- jconsole - graficzne narzędzie do monitorowania i zarządzania aplikacjami Java
- jstat - narzędzie do monitorowania statystyk JVM
- jmap - narzędzie do tworzenia zrzutów pamięci
- VisualVM - zaawansowane narzędzie do analizy wydajności i diagnostyki
🏁 Podsumowanie - Gotowy na programowanie w Javie
Instalacja Javy na Ubuntu 20.04 za pomocą apt-get jest prostym procesem, który daje dostęp do potężnego ekosystemu aplikacji i narzędzi programistycznych. Wybór między OpenJDK a Oracle Java zależy od Twoich konkretnych potrzeb, ale dla większości zastosowań OpenJDK będzie wystarczającym i bezproblemowym rozwiązaniem.
Kluczowe punkty:
- OpenJDK jest rekomendowaną implementacją dla większości zastosowań
- Możesz łatwo instalować i zarządzać wieloma wersjami Javy za pomocą system alternatyw Ubuntu
- Poprawna konfiguracja zmiennych środowiskowych, szczególnie JAVA_HOME, jest istotna dla wielu aplikacji
- Narzędzia takie jak SDKMAN! mogą ułatwić pracę z wieloma wersjami Javy
Dzięki Javie masz dostęp do ogromnego ekosystemu bibliotek, frameworków i narzędzi, które mogą być wykorzystane do tworzenia wszechstronnych aplikacji - od prostych programów konsolowych po rozbudowane systemy enterprise.
🚀 Potrzebujesz hostingu gotowego na Javę?
Sprawdź nasze rozwiązania hostingowe zoptymalizowane pod aplikacje Java
Nasza infrastruktura serwerowa jest idealna dla aplikacji Java, oferując wysoką wydajność, stabilność i wsparcie dla różnych wersji środowiska uruchomieniowego.
❓ FAQ - Odpowiedzi na Twoje Pytania
Która wersja Javy jest najlepsza dla Ubuntu 20.04?
OpenJDK 11 jest domyślnie wspierana w Ubuntu 20.04 i jest rekomendowana dla większości zastosowań. Jeśli Twoja aplikacja wymaga konkretnej wersji, możesz zainstalować również OpenJDK 8 lub nowsze wersje.
Czy mogę zainstalować zarówno OpenJDK, jak i Oracle Java?
Tak, możesz zainstalować obie implementacje równolegle i przełączać się między nimi za pomocą systemu alternatyw Ubuntu (update-alternatives).
Jak sprawdzić, która wersja Javy jest aktualnie używana?
Użyj polecenia java -version
, aby sprawdzić aktualnie używaną wersję środowiska uruchomieniowego, i javac -version
, aby sprawdzić wersję kompilatora.
Czy JRE zawiera JDK, czy na odwrót?
JDK (Java Development Kit) zawiera JRE (Java Runtime Environment) oraz dodatkowe narzędzia deweloperskie. JRE samo w sobie nie zawiera tych narzędzi i służy tylko do uruchamiania aplikacji Java.
Jak rozwiązać problem "Could not create the Java virtual machine"?
Ten błąd często wynika z niewystarczającej ilości pamięci lub niewłaściwych parametrów JVM. Spróbuj dostosować parametry -Xmx (maksymalna wielkość sterty) i -Xms (początkowa wielkość sterty) do dostępnych zasobów systemowych.
Czy ten artykuł był pomocny?
Twoja strona WordPress działa wolno?
Sprawdź nasz hosting WordPress z ultraszybkimi dyskami NVMe i konfiguracją serwera zoptymalizowaną pod kątem wydajności. Doświadcz różnicy już dziś!
Sprawdź ofertę hostingu