Oracle hat vor kurzem unter dem Titel Oracle Java SE Support Roadmap tiefgreifende Änderungen am Java-Lizenzmodell, dem Release-Zyklus und der Support-Roadmap von Java angekündigt. Der Veröffentlichung ist zu entnehmen, dass Oracle künftig beginnend mit Java 11 weder kostenlose JDK-Versionen (siehe Glossar) noch kostenfreie Patches für OpenJDK-Fehler liefern wird.
Außerdem ändern sich die Release-Zyklen und die Support-Roadmap für Java. Um Oracles Ankündigung verstehen und die Folgen für den eigenen Java-Einsatz besser abschätzen zu können, muss man wissen, wie das neue Java-Lizenzmodell mit dem Release-Zyklus und der Support-Roadmap zusammenhängt.
Neues Lizenzmodell
Oracle hat seine Java-Versionen bisher unter der Oracle Binary Code License (BCL) veröffentlicht. Diese Lizenz erlaubte, die Java-Technologie unter bestimmten Bedingungen kostenfrei zu nutzen – auch für kommerzielle Produkte. Seit der Veröffentlichung von Java 11 bietet Oracle Java-Anwendern an, JDKs mit einer der folgenden Lizenzen zu verwenden: entweder unter der bekannten GNU GPL-Lizenz v2 mit einer sogenannten Classpath-Exception (GPLv2+CPE) für das OpenJDK oder unter einer kommerziellen Lizenz für das Oracle JDK. Für welche der beiden Lizenzen man sich entscheidet, sollte in erster Linie vom Einsatzzweck und von der Notwendigkeit für professionellen Support abhängen. Einen funktionalen Unterschied gibt es ab Java 11 laut einer Veröffentlichung des Oracle-Produktmanagements nicht.
Zu den Lizenzen: Verwendet man eine Software, die der GPL unterliegt, ist man normalerweise gezwungen, seine Software ebenfalls quelloffen zu vertreiben, was sich bei kommerzieller Software ausschliesst. Um dieses starke Copyleft zu vermeiden, gibt es die GPLv2 mit der sogenannten Classpath Exception. Die Classpath Exception bedeutet im Zusammenhang mit Oracles Veröffentlichung, dass kommerzielle Java-Softwareprodukte nicht notwendigerweise wieder mit einer GPL veröffentlicht werden müssen.
Es ist also gestattet, eine Java-Anwendung mit einer kommerziellen Lizenz zu vertreiben, obwohl die zugrunde liegende Java-Version unter GPLv2+CPE vertrieben wird. Wählt man, Java mit GPLv2+CPE zu lizensieren, hat man jedoch keinen Anspruch auf Oracle-Support, der zum Beispiel kostenfreie JDK-Patches umfasst.
Alternative JDK-Bezugsquellen
Firma | Link |
---|---|
AdoptOpenJDK | |
Azul | |
Eclipse | |
IBM | |
Red Hat | |
SAP |
Wer auf kommerziellen Support Wert legt, zum Beispiel um Security-Patches zu erhalten, sollte entweder die kommerzielle Oracle-Lizenz auswählen oder Java von einer anderen Quelle lizensieren, von der ebenfalls Support erhalten werden kann (siehe Tabelle oben "Alternative JDK-Bezugsquellen").
Neuer Release-Zyklus und Support-Roadmap
Neben dem Lizenzmodell ändern sich auch der Release-Zyklus und die Support-Roadmap von Java. Beginnend mit Java 11 führt Oracle einen sechsmonatigen Release-Zyklus ein. Alle sechs Monate, zum März und September jeden Jahres, wird Oracle ein neues sogenanntes Feature-Release (Major-Release) veröffentlichen (siehe Tabelle unten "Oracle Java SE Support-Roadmap"). Darüber hinaus wird ein sogenannter Long Term Support (LTS) eingeführt, für das ein Release alle drei Jahre vorgesehen ist. Wie eingangs erwähnt, stellt Oracle ab Januar 2019 für Java SE 8 keine öffentlichen Updates für kommerzielle Zwecke mehr zur Verfügung. Für Privatanwender dauert die Frist bei JSE 8 etwas länger und endet im Dezember 2020.
Oracle Java SE Support-Roadmap
Release | Veröffentlicht | Premier Support | Extended Support | Sustaining Support |
---|---|---|---|---|
Java 6 | 12.2006 | bis 12.2015 | bis 12.2018 | Unbegrenzt |
Java 7 | 07.2011 | bis 07.2019 | bis 07.2022 | Unbegrenzt |
Java 8 | 03.2014 | bis 03.2022 | bis 03.2025 | Unbegrenzt |
Java 9 (kein LTS) | 09.2017 | bis 03.2018 | Nicht verfügbar | Unbegrenzt |
Java 10 (kein LTS) | 03.2018 | bis 09.2018 | Nicht verfügbar | Unbegrenzt |
Java 11 (LTS) | 09.2018 | bis 09.2023 | bis 09.2026 | Unbegrenzt |
Java 12 (kein LTS) | 03.2019 | bis 09.2019 | Nicht verfügbar | Unbegrenzt |
Java 13 | 09.2019 | bis 03.2020 | noch nicht bekannt | noch nicht bekannt |
Die Kosten für kommerziellen Support sind dem Dokument Java Subscription FAQs zu entnehmen. Eine detaillierte Preisliste ist ebenfalls verfügbar. Die Preise schwanken zwischen 12,50 Dollar und 25 Dollar pro Prozessor je nach Prozessoranzahl und 1,25 Dollar und 2,50 Dollar pro Anwender je nach Anwenderanzahl. Cloud-Deployments werden laut Oracle unterstützt, wogegen die Preisliste eine Erklärung schuldig bleibt, wie Oracle die Lizenzgebühren in solchen elastischen Umgebungen berechnet.
JDK\Datum | 10/2017 | 01/2018 | 04/2018 | 07/2018 | 10/2018 | 01/2019 | 04/2019 | 07/2019 |
---|---|---|---|---|---|---|---|---|
OpenJDK | 9.0.1 | 9.0.4 | 10.0.1 | 10.0.2 | 11.0.1 | 11.0.2 | 12.0.1 | 12.0.2 |
Oracle | 8u151 | 8u161 | 8u171 | 8u181 | 8u191 | 8u201 | 8u211 | 8u221 |
Oracle JDK | 9.0.1 | 9.0.4 | 10.0.1 | 10.0.2 | 11.0.1 | 11.0.2 | 11.0.3 | 11.0.4 |
Der neue Release-Zyklus, die neue Support-Roadmap und die Preise sehen zunächst nicht nach dramatischen Umwälzungen aus. Sie bringen jedoch viele Firmen, die bisher ohne kostenpflichtigen Support ausgekommen sind, in eine Zwickmühle. Da Oracle einerseits manche Technologien in neuen Java-Releases nicht mehr zur Verfügung stellt (Applets nur bis JSE 8) beziehungsweise ausgliedert (Java-Webstart und JavaFX ab Java 11) und andererseits alte Versionen sogar mit "Premier Support" rasch abkündigt, kommen Firmen in Zugzwang. Sie müssen, dem ersten Eindruck nach, schnell entscheiden, ob sie weiterhin Java kostenfrei einsetzen und dem schnellen Release-Zyklus folgen oder kommerziellen Support in Anspruch nehmen und dafür mehr Zeit für eine Migration einplanen können.
Java-Champions
Ein Gruppe von zertifizierten Java-Entwicklern, den sogenannten Java-Champions, hat auf die Ankündigung von Java mit der Veröffentlichung Java Is Still Free reagiert. In diesem Dossier wird klargestellt, dass sowohl das Oracle JDK als auch das OpenJDK in Zukunft durch Drittanbieter weiterhin kostenlos zur Verfügung stehen wird. Hinter den genannten Firmen stehen natürlich auch Eigeninteressen. Eclipse beispielsweise baut nahezu alle seine Open-Source-Projekte auf Java-Basis auf. Eine Verunsicherung aufgrund der Oracle-Ankündigungen dürfte also nicht im Interesse der Eclipse-Community sein, weswegen sie die Verbreitung der Java-Technologie unterstützt.
Fazit
Oracle hat mit seiner Ankündigung in ein Wespennest gestochen. Java ist nicht nur die weltweit am meisten eingesetzte Programmiersprache. Die Java-Technologie wird zudem für extrem unternehmenskritische Anwendungen eingesetzt. Mit Oracles neuer Lizenz- und Supportpolitik entsteht der Eindruck, dass der Konzern seine Vormachtstellung hinsichtlich Java ausnutzt und versucht, bei den Anwender abzukassieren. Doch die Rechnung geht nicht auf: Java wird weiterhin kostenfrei bleiben, da es neben Oracle noch andere Bezugsquellen für die Java-JDKs gibt. Es bleibt die Hoffnung, dass sich diese Bezugsquellen auch als verlässliche Lieferanten für zeitkritische Patches erweisen.
Empfehlungen zur Java-Strategie
Revision, welche und wie viele Java-Versionen das eigene Unternehmen einsetzt.
Werden Java-Technologien eingesetzt, die vom Java-Release abhängig sind, zum Beispiel Webstart?
Kann dem neuen sechsmonatigen Release-Zyklus der JDKs gefolgt werden?
Soll das JDK unter GPLv2+CPE oder kommerzieller Lizenz mit Support eingesetzt werden?
Glossar
Long Termin Support (LTS): Kommerzieller Langzeit-Support seitens Oracle.
Java Standard Edition (Java SE oder kurz JSE): identisch mit Java Development Kit (JDK).
Java Development Kit (JDK): Enthält neben der Java-Laufzeitumgebung (siehe unten) weitere Bestandteile wie den Java-Compiler, der bei manchen Entwicklungsumgebungen erforderlich ist.
Java-Laufzeitumgebung (JRE): Wird benötigt, um Java-Programme auszuführen.