Java 8 ist EOL. Was nun?

Seit Ende Januar 2019 gibt es keine kostenlosen Public Updates mehr von Oracle JDK 8. Zusätzlich hat Oracle sein Lizenzmodell auf Java 11 geändert. Was bedeutet das nun für uns als Anwender? Stefan Rotman berichtet.

Seit Ende Januar 2019 gibt es keine kostenlosen Public Updates mehr von Oracle JDK 8. Zusätzlich hat Oracle sein Lizenzmodell auf Java 11 geändert. Das Gute dabei, Open JDK kann von nun an als das Standard JDK betrachtet werden und das Oracle JDK wird nur noch ein weiterer JDK-Flavor.

Aber was bedeutet das für uns als Java-Anwender? Die Antwort auf diese Frage lautet: „Es kommt darauf an“. Vielleicht möchten wir mit einem anderen JDK auf Java 8 bleiben oder auf Java 11 migrieren – so oder so, wir müssen uns überlegen, welches JDK wir verwenden werden.

Oracle unterscheidet zwischen drei Arten von Java-Benutzern: Oracle-Kunden (zahlende Kunden mit einem Oracle Java SE-Abonnement), persönliche Benutzer (Java wird auf einem persönlichen Desktop oder Laptop verwendet und/oder Java-Anwendungen werden für Hobby oder Bildung entwickelt) und kommerzielle Anwender (im Grunde genommen alle, die nicht in die anderen beiden Kategorien passen, d.h. die Mehrheit da draussen).

Ich werde mich in diesem Blogpost auf das JDK für kommerzielle Anwender konzentrieren.

TL;DR

Java kann weiterhin verwendet und kostenlos upgedatet werden, wenn OpenJDK verwendet wird, vor allem da dieses ab Java 11 als Standard-JDK gilt.
Wo man dies erhält, hängt von der Anwendung ab. Zu den Optionen gehören (sind aber nicht darauf beschränkt): Das JDK der Linux-Distribution Red Hat OpenJDK, Azul Zulu, Amazon Corretto, AdoptOpenJDK oder Oracle OpenJDK.

Oracle JDK, OpenJDK und TCK/JCK Konformität

Seit Jahren ist das Oracle JDK der «De facto Standard JDK». Das bedeutet, dass wir in den meisten Fällen das JDK aus dem Oracle Technology Network herunterladen. Und da ist der Haken: Wenn wir das weiterhin tun, verletzen wir die Lizenzvereinbarung von Oracle für das JDK.

Zukünftig wird man jedoch nicht mehr das Bedürfnis haben Oracle JDK zu verwenden: Es gibt verschiedene OpenJDK-Distributionen. Das an sich ist nichts Neues. Schon vor der Übernahme von Sun durch Oracle – und damit der Verantwortung für die Java-Plattform – wurde das JDK unter einer leicht angepassten Version der GPLV2-Lizenz Open-Source betrieben. Und neben dem Oracle JDK gab es verschiedene 3rd-Party-JDK-Distributionen. Mit der Veröffentlichung von Java 11 wurde das OpenJDK zum primären JDK. Dies jedoch mit einem Vorbehalt: Das OpenJDK, das Oracle selbst anbietet, wird ab dem Zeitpunkt der Veröffentlichung der nächsten Java-Version keine Sicherheitspatches mehr erhalten. Dies ist mit einem 6-monatigen Release-Zyklus kein sehr beruhigender Gedanke.

Wenn wir nun die 3rd party OpenJDK Distribution in unserer Produktion verwenden wollen, dann wollen wir uns versichern, dass diese auch so funktioniert, wie sie sollte. Der beste Weg dies zu überprüfen, ist die Analyse auf TCK-Konformität: Wenn eine OpenJDK-Distribution TCK-kompatibel ist, wurde sie mit dem Java Technology Compatibility Kit von Oracle (closed source!) getestet. Dies, um eine korrekte Implementierung der Spezifikationen zu gewährleisten. Jedoch kann ein JDK ohne TCK-Konformität auch qualitativ hochwertig sein – und es könnte auch vollständig kompatibel sein. Es handelt sich dann um eines, bei dem der Entwickler des JDKs keine Lizenzgebühren an Oracle bezahlt hat. Einige Beispiele für solche nicht-TCK-qualitativen OpenJDKs sind die Distributionen von AdoptOpenJDK.

Wo bekommt man sein JDK?

Wenn wir uns für OpenJDK entscheiden haben, stellt sich die nächste Frage – Welche? Und wo erhalte ich sie? Auch hier lautet die Antwort: „Es kommt darauf an“.
Nach meiner Meinung nach, sollte man sich an ein OpenJDK halten, das einen guten Support-Lebenszyklus hat (was bedeutet, dass es  Updates und Sicherheitspatches erhält) und zu der Umgebung passt, in der man es verwenden möchte.

Willst du Java auf einem Linux-System verwenden? Hierbei solltest du das JDK benutzen, welches deine Distribution bereitstellt.
Benutzt du Java auf AWS? Siehe dabei: Amazon Corretto.
Willst du andere Optionen? Siehe: Red Hat OpenJDK, Azul Zulu oder AdoptOpenJDK.
Möchten du Oracle’s OpenJDK brauchen? Du wirst es im Oracle Technology Network nicht finden. Lade es stattdessen herunter unter jdk.java.net.

Zum jetzigen Zeitpunkt stellt sich der Support-Lebenszyklus für die oben genannten JDK’s wie folgt dar:

JDK Java 8 (LTS) Java 11 (LTS)
Red Hat OpenJDK Juni 2023 Oktober 2024
Azul Zulu März 2025 September 2026
AdoptOpenJDK Mindestens Sep. 2023 Mind. Sep. 2022
Amazon Coretto Mind. Juni 2023 Mind. Aug. 2024
Oracle OpenJDK März 2019

 

Kommentare sind geschlossen.