Czy Java jest darmowa?

Odpowiedź na pytanie: "Czy Java jest darmowa? " w większości przypadków to: tak, Java jest darmowa , ale z pewnymi wyjątkami.

UWAGA! Nie jestem prawnikiem i nie biorę żadnej odpowiedzialności, gdyby poniższe informacje odbiegały od prawdy!
Artykuł zawiera uproszczenia, żeby był bardziej przystępny dla odbiorcy.

Zacznijmy od tego, że Java dla celów osobistych i deweloperskich jest i zawsze była darmowa.

Jeśli chodzi o cele komercyjne, to zacznijmy od zrozumienia, czym tak naprawdę jest Java. Jest to specyfikacja języka programowania. Natomiast mechanizmy, które sprawiają, że kod napisany w Javie kompiluje się i uruchamia to JDK, czyli Java Development Kit.

Java jako specyfikacja jest darmowa i open source.

JDK, czyli zestaw mechanizmów kiedyś był dostarczany tylko przez firmę Oracle, ale aktualnie jest wielu dystrybutorów:

Czym różnią się dystrybucje? Z punktu użytkownika niewiele. Wszystkie bazują na darmowym OpenJDK tworzonym przez Oracle. Niektóre zawierają dodatkowe wsparcie, funkcjonalności dla deweloperów, może są ciut szybsze w jakimś konkretnym zastosowaniu.

Którą wersję Javy mam zainstalować?

Jeśli oprogramowanie, które masz zamiar używać działa na najnowszej wersji Javy, to wybierz dowolną dystrybucję, pobierz najnowszą wersję i gotowe. Gorzej, jeśli Twoje oprogramowanie wymaga np. Java 8 (wydanej w marcu 2014) i nie działa na najnowszych wersjach (bo niektóre elementy zostały usunięte z JDK).

Tutaj wyzwaniem są tzw. łatki bezpieczeństwa, ktoś przecież musi je dostarczać, a mało kto chce utrzymywać oprogramowanie wydane 10 lat temu. Dlatego właśnie Oracle oczekuje za to opłaty.

Do wersji JDK 8u202 (Java 8, update 202) - darmowa - https://www.oracle.com/pl/java/technologies/javase/javase8-archive-downloads.html
Od JDK 8u203 (Java 8, update 203) - płatna - https://www.oracle.com/pl/java/technologies/downloads/

Na szczęście są też darmowe rozwiązania, np. Eclipse Temurin dostarcza darmowe JDK 8: https://adoptium.net/temurin/releases/?version=8

Automatyczna aktualizacja i instalator Javy

Ze względu na bezpieczeństwo należy aktualizować zainstalowane oprogramowanie. Java nie jest tutaj wyjątkiem. Większość powyższych dystrybucji nie posiada automatycznej aktualizacji. Przykładowo instalujecie wersję JDK 17.0.2 i tyle. Co w przypadku, gdy okaże się, że jest tam luka bezpieczeństwa? Podejrzewam, że dosyć szybko zostanie wydana wersja 17.0.3, natomiast to w Twojej gestii pozostaje ją pobrać. Nikt nie ma ochoty co jakiś czas sprawdzać, czy pojawiła się nowa wersja.

Oracle posiadał kiedyś Java Auto Update, ale z tego, co rozumiem, to wsparcie zostało zakończone wraz z Java 8. Na szczęście społeczność podłapała temat i powstał darmowy auto updater, który można pobrać tutaj, natomiast instrukcja obsługi dostępna jest na wiki projektu. Pozwala on sprawdzić, czy jest dostępna nowa wersja JDK dostarczana przez "alternatywnych" dostawców (Eclipse, IBM).

Wersje Javy, a wsparcie i łatki bezpieczeństwa

Dlaczego najczęściej mówi się o wersjach 8, 11, 17 i najnowszej 19? Dlaczego np. wszystkie wersje pomiędzy 11, a 17 (12, 13, 14, 15, 16) są pomijane? Wynika to z podejścia do wydawania kolejnych wersji Javy. Są dwa typy wydań:

  • zwykły, non-LTS, wydawany co pół roku
  • LTS (Long Time Support), wydawane co około dwa lata. Dotychczasowe LTS to wspomniane wcześniej 8, 11, 17, a następna planowana to 21

Zwykłe wydania otrzymują łatki bezpieczeństwa aż do wydania kolejnej wersji. Przykładowo mając zainstalowaną Java 19, to po wydaniu Java 20 należy się do niej zaktualizować. Są oczywiście wyjątki, jeśli jakaś organizacja zdecyduje się dostarczać wparcie.

Wydania LTS, mają długi okres wsparcia (stąd nazwa) i otrzymują łatki bezpieczeństwa długo dużej. Około 6 lat od wydania darmowego wsparcia i jeszcze 2 lata płatnego. Tutaj możesz znaleźć rozpiskę.

Dyskusja i komentarze

Masz pytania do tego wpisu? Może chcesz się podzielić spostrzeżeniami? Zapraszamy dyskusji na naszej grupie na Facebooku.