Oracle JDK 14 v. OpenJDK 14

Oracle dokłada wszelkich starań, aby binaria Oracle JDK i OpenJDK były tak podobne do siebie jak to możliwe. Tym niemniej istnieje pewna liczba różnic, które aktualnie są następujące:

Obsługiwane systemy operacyjne

Oracle JDK oferuje (Rys. 306):

Pakiety instalacyjne Oracle JDK
Rys. 306

OpenJDK oferuje (Rys. 307):


Rys. 307

Alpine Linux będzie obsługiwany w OpenJDK od Java 15.

Instalatory

Jak widzimy Oracle JDK oferuje instalatory dla poszczególnych systemów operacyjnych (msi, rpm, deb, itd.). Instalator zapewnia obsługę aktualizacji (update), czasami wykonuje pewne zadania konfiguracyjne (np. ustawienie zmiennej JAVA_HOME w Windows), ustanawia powiązania narzędzi z rozszerzeniami (np. zapewnia użycie narzędzia java to uruchamiania plików archiwów .jar).
OpenJDK dostarczany jest w postaci skompresowanego pliku archiwum (.tar.gz lub .zip). Po rozpakowaniu otrzymujemy folder zawierający binaria.

Narzędzie javac

W wydaniu 9 i 10 narzędzie javac w Oracle JDK obejmowało API takie jak javafx, zarządzanie zasobami (resource management) oraz wstępną wersję narzędzia JFR (Java Flight Recorder), które w Oracle JDK 14 jest dostępne tylko w planach płatnych.

JDK i JRE

Oracle JDK oferowało JDK i JRE, a OpenJDK tylko JDK. W wersji 14 w obu zestawach JRE nie występuje.

Logging API

Użycie Logging API jest możliwe jedynie w Oracle JDK.

Flaga –XX:+UnlockCommercialFeatures

W OpenJDK użycie przełącznika JVM –XX:+UnlockCommercialFeatures nadal będzie powodować wyrzucenie błędu i zatrzymanie JVM.
W Oracle JDK przełącznik nie jest potrzebny i jego użycie spowoduje wydrukowanie ostrzeżenia, ale wykonywanie będzie kontynuowane.
Przełącznik jest używany, aby odblokować użycie JFR.

Dostawcy kryptografii

OpenJDK pozwala na użycie nie podpisanych dostawców kryptografii (crypto providers).
Oracle JDK wymaga podpisania dostawców kryptografii certyfikatem dostarczonym przez Oracle (Java Cryptography Extension).

java –version

Wynik wykonania polecenia jest odmienny.
Oracle JDK (Rys. 304):

Wersja Java
Rys. 304 Wersja Oracle JDK

Open JDK (Rys. 305):


Rys. 305. Wersja OpenJDK

Licencje

Oracle JDK jest wydawane z licencją na warunkach OTN.
OpenJDK jest wydawane z licencją GPLv2wCP na warunkach GPL.

Biblioteka FreeType

Oracle JDK dystrybuuje FreeType z licencją FreeType.
OpenJDK dystrybuuje FreeType z licencją GPLv2.
Z tego powodu zawartość pliku \legal\java.desktop\freetype.md może być różna w OpenJDK i Oracle JDK.

Zastrzeżenia licencyjne w kodzie źródłowym

Kod źródłowy Oracle zawiera „ORACLE PROPIETARY/CONFIDENTIAL. Use is subject to license terms.”
Kod źródłowy OpenJDK zawiera informacje o licencji GPL.

Ikony

Ikoną Oracle JDK jest filiżanka parującej kawy (Rys. 131).

Differences between Oracle JDK and OpenJDK
Rys. 131. Ikona Oracle JDK

Ikoną OpenJDK jest Duke (Rys. 132).

Differences between Oracle JDK and OpenJDK
Rys. 132 Ikona Open JDK

Specyfikacje

Do dokumentacji Oracle JDK dołączone są specyfikacje:

  • jar
  • jdwp
  • jni
  • jpda
  • rmi
  • security
  • serialization

Dokumentacja OpenJDK nie zawiera tych specyfikacji.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *