Oracle JDK 11 v. OpenJDK 11

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

Jedynie Oracle JDK obsługuje Solaris.
Jedynie OpenJDK obsługuje Alpine Linux.

Instalatory

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 11. jest dostępne tylko w planach płatnych.

JDK i JRE

Oracle JDK oferowało JDK i JRE, a OpenJDK tylko JDK. W wersji 11 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 –version

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

Differences between Oracle JDK and OpenJDK
Rys. 129. Wersja Oracle JDK

Open JDK (Rys. 130):

Differences between Oracle JDK and OpenJDK
Rys. 130. 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.

2 komentarze


  1. Obsługiwane systemy operacyjne

    Jedynie Oracle JDK obsługuje Solaris.
    Jedynie OpenJDK obsługuje Alpine Linux.

    Instalatory
    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),

    Skoro obsługiwane systemy do Solaris i Alpine linux to skąd instalator dla Windows?

    daw

Dodaj komentarz

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