Ze względu na ostatnią aktualizację zasad dotyczących planu pomocy technicznej dla Oracle Java SE (w szczególności koniec darmowych aktualizacji wydania Oracle po marcu 2019 r.), Szukałem alternatyw dla Oracle Java. Odkryłem, że OpenJDK jest alternatywą typu open source. I znalazłem AdoptOpenJDK , teraz znany jako Adoptium, który jest wstępnie skompilowanym plikiem binarnym . To zagadkowe.
Jaka jest różnica między OpenJDK a Adoptium / AdoptOpenJDK?
Odpowiedzi:
W skrócie:
Wyjaśnienie:
Prebuilt OpenJDK (lub dystrybucja) - pliki binarne, zbudowane z http://hg.openjdk.java.net/ , dostarczane jako archiwum lub instalator, oferowane na różne platformy, z możliwą umową wsparcia.
OpenJDK, repozytorium źródłowe (zwane także projektem OpenJDK ) - jest repozytorium open source opartym na Mercurial , hostowanym pod adresem http://hg.openjdk.java.net . Kod źródłowy Java. Zdecydowana większość funkcji Java (od maszyny wirtualnej i podstawowych bibliotek po kompilator) opiera się wyłącznie na tym repozytorium źródłowym. Oracle ma alternatywny rozwidlenie tego.
OpenJDK, dystrybucja (patrz lista dostawców poniżej) - jest bezpłatna jak w piwie i jakby wolna jak w mowie , ale nie możesz dzwonić do Oracle, jeśli masz z tym problemy. Nie ma umowy serwisowej. Ponadto Oracle będzie wydawać aktualizacje do dowolnej wersji OpenJDK (dystrybucyjnej) tylko wtedy, gdy ta wersja jest najnowszą wersją Java, w tym wydania LTS (długoterminowe wsparcie techniczne). W dniu, w którym Oracle wypuści OpenJDK (dystrybucja) w wersji 12.0, nawet jeśli wystąpi problem z bezpieczeństwem w OpenJDK (dystrybucja) w wersji 11.0, Oracle nie wyda aktualizacji do 11.0. Utrzymywane wyłącznie przez Oracle.
Niektóre projekty OpenJDK - takie jak OpenJDK 8 i OpenJDK 11 - są obsługiwane przez społeczność OpenJDK i zapewniają wydania dla niektórych wersji OpenJDK dla niektórych platform. Członkowie społeczności wzięli na siebie odpowiedzialność za wydanie poprawek dla luk w zabezpieczeniach w tych wersjach OpenJDK.
AdoptOpenJDK, dystrybucja jest bardzo podobna do dystrybucji Oracle OpenJDK (w tym, że jest darmowa i jest kompilacją utworzoną przez kompilację źródeł z repozytorium źródeł OpenJDK). AdoptOpenJDK jako jednostka nie będzie backportować łatek, tj. Nie będzie „rozwidlenia / wersji” AdoptOpenJDK, która różni się istotnie od upstream (z wyjątkiem niektórych łatek skryptów kompilacji dla rzeczy takich jak obsługa Win32). Oznacza to, że jeśli członkowie społeczności (Oracle lub inni, ale nie AdoptOpenJDK jako jednostka) zgłaszają poprawki bezpieczeństwa do aktualizacji wersji OpenJDK LTS, wówczas AdoptOpenJDK dostarczy kompilacje dla nich. Utrzymywane przez społeczność OpenJDK.
OracleJDK - to kolejna dystrybucja. Począwszy od JDK12 nie będzie bezpłatnej wersji OracleJDK. Oferta dystrybucyjna Oracle JDK jest przeznaczona do wsparcia komercyjnego. Płacisz za to, ale wtedy możesz polegać na Oracle w zakresie wsparcia. W przeciwieństwie do oferty Oracle OpenJDK, OracleJDK zapewnia dłuższą obsługę wersji LTS. Jako programista możesz uzyskać bezpłatną licencję do użytku osobistego / programistycznego tylko dla tego konkretnego JDK, ale jest to głównie czerwony śledź, ponieważ „tylko plik binarny” jest zasadniczo taki sam jak plik binarny OpenJDK. Wydaje mi się, że oznacza to, że można pobrać wersje LTS JDK z poprawkami bezpieczeństwa ze stron internetowych Oracle, o ile obiecasz nie używać ich w celach komercyjnych.
Uwaga . Najlepiej byłoby nazwać kompilacje OpenJDK firmy Oracle „kompilacjami Oracle OpenJDK”.
Donald Smith, menedżer produktu Java w Oracle, pisze :
Dostawcy i porównanie OpenJDK
Darmowe kompilacje ze źródła - kod źródłowy dystrybucji jest publicznie dostępny i można złożyć własną kompilację
Darmowe dystrybucje binarne - pliki binarne dystrybucji są publicznie dostępne do pobrania i użytkowania
Rozszerzone aktualizacje - aka LTS (wsparcie długoterminowe) - publiczne aktualizacje wykraczające poza 6-miesięczny cykl życia wydania
Wsparcie komercyjne - niektórzy dostawcy oferują rozszerzone aktualizacje i wsparcie dla klientów płacących, np. Oracle JDK ( szczegóły pomocy )
Licencja zezwalająca - licencja dystrybucyjna nie zapewnia ochrony, np. Apache 2.0
Której dystrybucji Java powinienem użyć?
W czasach Sun / Oracle to zwykle Sun / Oracle produkowało własne dystrybucje JDK na podstawie źródeł OpenJDK. Niedawno firma Oracle zdecydowała się tworzyć własne zastrzeżone kompilacje tylko z dołączonym wsparciem komercyjnym. Łaskawie publikują również kompilacje OpenJDK na swojej stronie https://jdk.java.net/ .
Zaczynając od JDK 11, następuje przejście od nastawienia jednego dostawcy (Oracle) do sposobu myślenia, w którym wybierasz dostawcę, który zapewnia dystrybucję produktu, na warunkach, które lubisz: platformy, dla których budują, częstotliwość i terminowość wydań , struktura wsparcia itp. Jeśli nie ufasz żadnemu z istniejących dostawców, możesz nawet samodzielnie zbudować OpenJDK.
Każda kompilacja OpenJDK jest zwykle tworzona z tego samego oryginalnego repozytorium źródłowego (OpenJDK „projekt”). Jednak każda kompilacja jest dość wyjątkowa - bezpłatna lub komercyjna, markowa lub niemarkowa, czysta lub w pakiecie (np. BellSoft Liberica JDK oferuje pakiet JavaFX, który został usunięty z kompilacji Oracle począwszy od JDK 11).
Jeśli żadne środowisko (np. Linux) i / lub wymagania licencyjne nie definiują konkretnej dystrybucji i jeśli chcesz najbardziej standardowej kompilacji JDK, prawdopodobnie najlepszą opcją jest użycie OpenJDK firmy Oracle lub AdoptOpenJDK.
Dodatkowe informacje
Czas wyjść poza JDK Oracle autorstwa Stephena Colebourne'a
Java jest nadal bezpłatna od społeczności Java Champions (opublikowana 17 września 2018 r.)
Java jest nadal bezpłatna w wersji 2.0.0 autorstwa społeczności Java Champions (opublikowano 3 marca 2019 r.)
Aleksey Shipilev o aktualizacjach JDK Wywiad przeprowadzony przez Opsian (opublikowany 27 czerwca 2019)
źródło
Aktualizacja: AdoptOpenJDK zmienił nazwę na Adoptium w ramach przeniesienia do Fundacji Eclipse .
OpenJDK ➙ kod źródłowy
Adoptium / AdoptOpenJDK ➙ buduje
Pierwsza dostarcza kod źródłowy , druga dostarcza kompilacje tego kodu źródłowego.
Kilku dostawców Java i OpenJDK
Adoptium of the Eclipse Foundation , wcześniej znanej jako AdoptOpenJDK , jest tylko jednym z kilku dostawców dystrybuujących implementacje platformy Java. Obejmują one:
Zapoznaj się z moim schematem blokowym, który pomoże Ci wybrać dostawcę do wdrożenia platformy Java. Kliknij / dotknij, aby powiększyć.
Inny zasób: ta macierz porównawcza firmy Azul Systems jest przydatna i wydaje mi się prawdziwa i uczciwa.
Oto lista uwag i motywacji, które należy wziąć pod uwagę przy wyborze dostawcy i wdrożeniu.
Niektórzy dostawcy oferują wybór technologii JIT .
Aby dowiedzieć się więcej o tym ekosystemie Java, przeczytaj artykuł Java jest nadal bezpłatna
źródło