OpenJDK
| Skriptfehler: Ein solches Modul „WLink“ ist nicht vorhanden.
| |
|---|---|
| [[Datei:Skriptfehler: Ein solches Modul „Wikidata“ ist nicht vorhanden.|150px]] | |
| Basisdaten
| |
| Maintainer | Skriptfehler: Ein solches Modul „Wikidata“ ist nicht vorhanden. |
| Entwickler | Skriptfehler: Ein solches Modul „Wikidata“ ist nicht vorhanden. |
| Erscheinungsjahr | Skriptfehler: Ein solches Modul „Wikidata“ ist nicht vorhanden. |
| Aktuelle Version | Skriptfehler: Ein solches Modul „Wikidata“ ist nicht vorhanden. (Skriptfehler: Ein solches Modul „Wikidata“ ist nicht vorhanden.) |
| Aktuelle Vorabversion | Skriptfehler: Ein solches Modul „Wikidata“ ist nicht vorhanden. (Skriptfehler: Ein solches Modul „Wikidata“ ist nicht vorhanden.) |
| Betriebssystem | Skriptfehler: Ein solches Modul „Wikidata“ ist nicht vorhanden. |
| Programmiersprache | Skriptfehler: Ein solches Modul „Wikidata“ ist nicht vorhanden. |
| Kategorie | Freie Java-Implementierung |
| Lizenz | Skriptfehler: Ein solches Modul „Wikidata“ ist nicht vorhanden. |
| Skriptfehler: Ein solches Modul „WLink“ ist nicht vorhanden. | |
OpenJDK ist die offizielle freie Implementierung der Java Platform, Standard Edition (Java SE) von Sun Microsystems und stellt den freien Nachfolger des Java Development Kit (JDK) dar. Es ist in den Sprachen C++ und Java geschrieben, wird unter der GNU General Public License (GPL) mit Ausnahmen für gelinkte externe Software veröffentlicht und von bekannten IT-Unternehmen wie Microsoft, Apple, IBM und SAP unterstützt.
Geschichte[Bearbeiten]
Nach Monaten der Spekulation seit der Offenlegung von Solaris über eine Offenlegung von Java<ref>linuxtoday.com </ref> verkündete Sun im Mai 2006 auf der Konferenz JavaOne, dass Java im Quelltext unter freier Lizenz als freie Software veröffentlicht werden solle. Am 13. November 2006 begann das Unternehmen mit der Veröffentlichung von HotSpot, JavaHelp und des Java-Compilers javac, der den Kernbestandteil des Java-Development-Kits darstellt, sein Versprechen einzulösen.<ref name="heise">Oliver Diedrich: Open-Source-Java: Details und Reaktionen. In: Tests. Heise Online, 13. November 2006. Auf Heise.de, abgerufen am 31. Mai 2025.</ref> Im Mai 2007 kam die Veröffentlichung des Großteils des Codes der Klassenbibliotheken.
Die Schritte wurden in der Freie-Software-Welt begeistert aufgenommen und als Meilensteine gefeiert.<ref><templatestyles src="Webarchiv/styles.css" />Vorlage:Webarchiv/WaybackSkriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.Skriptfehler: Ein solches Modul „TemplUtl“ ist nicht vorhanden.. In: Feature Story – Sun Opens Java. Sun Microsystems, 2008. Auf Sun.com, abgerufen am 31. Mai 2025 (englisch).</ref>
OpenJDK entstand als Abspaltung von Version 6 des JDK, womit dann die ersten Versionen der 7er-Linie als freie Software veröffentlicht wurden. Dabei wird weiterhin eine kommerzielle Version (beziehungsweise hauptsächlich damit verbundene technische Unterstützungsleistungen) vermarktet, die zumindest zunächst weiterhin die in OpenJDK ersetzten unfreien Bestandteile enthält.<ref name="heise" /> Da auch Bedarf an einer freien Implementierung der Java SE 6 bestand, wurde von OpenJDK 7 ein OpenJDK 6 abgespalten.<ref>JDK 6 Project. In: Projects. Oracle Corporation, 2025. Auf OpenJDK.org, abgerufen am 31. Mai 2025 (englisch).</ref>
Ab OpenJDK 7 wird auch macOS unterstützt.<ref><templatestyles src="Webarchiv/styles.css" />Vorlage:Webarchiv/WaybackSkriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.Skriptfehler: Ein solches Modul „TemplUtl“ ist nicht vorhanden.. In: Press Info › Press Release. Apple Inc., 2010. Auf Apple.com, abgerufen am 31. Mai 2025 (englisch).</ref>
Ersetzungen proprietärer Teile[Bearbeiten]
Da die Rechte an einigen Code-Teilen nicht gänzlich im Besitz von Sun waren, lagen die entsprechenden Teile nur in kompilierter Form vor und mussten ersetzt werden, um eine vollständig freie Version zu erhalten.<ref>Sunflash.20070508.3.xml. Auf Sun.com. </ref>
Dies umfasst unter anderem die Software zur Rasterung zweidimensionaler Vektorgrafiken mit Unterstützung für Antialiasing namens Pisces. Pisces berechnet für jedes Element die Abdeckungswerte der einzelnen Bildpunkte, die dann zur weiteren Verarbeitung an den Grafikprozessor übergeben werden, der dann die einzelnen Elemente zusammenfügt. Es entstammt Suns neuer Referenzimplementierung einer Java-Umgebung für mobile und Embedded-Geräte namens phoneME, dem freien Nachfolger der Java Platform, Micro Edition (Java ME) und ersetzt das zuvor verwendete proprietäre Ductus,<ref>Graphics Rasterizer Project. In: Projects. Oracle Corporation, 2025. Auf OpenJDK.org, abgerufen am 31. Mai 2025 (englisch).</ref><ref name="2D">The 2D Graphics Group. In: Groups. Oracle Corporation, 2025. Auf OpenJDK.org, abgerufen am 31. Mai 2025 (englisch).</ref> dessen Leistung der von Pisces’ noch deutlich überlegen ist.<ref>Linuxhippy: <templatestyles src="Webarchiv/styles.css" />Vorlage:Webarchiv/WaybackSkriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.Skriptfehler: Ein solches Modul „TemplUtl“ ist nicht vorhanden.. In: XRender Java 2D Backend Stuff… Linuyhippy, 12. September 2009. Auf Linuxhippy.Blogspot.com, abgerufen am 31. Mai 2025 (englisch).</ref> Alternativ zu Pisces’ reinem Software-Rendering kann in OpenJDK mittlerweile auch die Grafikbibliothek Cairo verwendet werden, die die Möglichkeit der Hardware-Beschleunigung bietet.
Weiterhin wurde der unfreie Software-Synthesizer mit einer eigens entwickelten Neuentwicklung namens Gervill<ref>Karl Helgason: <templatestyles src="Webarchiv/styles.css" />Vorlage:Webarchiv/TodaySkriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.Skriptfehler: Ein solches Modul „TemplUtl“ ist nicht vorhanden.. In: Java.net › Projects › Gervill › Wiki. Oracle, 4. Mai 2011. Auf Java.net, abgerufen am 31. Mai 2025 (englisch).</ref> ersetzt, Code zum Skalieren und Rastern von Schriftarten durch die FreeType-Bibliothek und die Farbmanagement-Software durch das bewährte freie LittleCMS.<ref name="2D" />
IcedTea[Bearbeiten]
In einem von Sun unabhängigen Gemeinschaftsprojekt namens IcedTea (das mittlerweile auch zum offiziellen Zweig beiträgt) wurde schließlich die Erstellung einer lauffähigen vollständig freien Version der OpenJDK in einem eigenen Entwicklungszweig vollendet, die auch bei ihrer eigenen Erstellung durch die Verwendung des GNU Compiler for Java (GCJ) ohne die Hilfe proprietärer Software auskommt. Dabei wurde der freie Code von OpenJDK mit Code aus dem GNU-Classpath-Projekt (freie Implementierung der Standardklassenbibliotheken) vervollständigt, wo proprietär gebliebene Bestandteile Lücken hinterlassen hatten, die bisher noch nicht gestopft waren.
Im November 2007 konnten IcedTea-Pakete in Fedora 8 aufgenommen werden.
Nachdem von IcedTea zunächst die Implementierung der Java SE 7 umgesetzt wurde, kam im April 2008 eine Variante namens IcedTea 6<ref><templatestyles src="Webarchiv/styles.css" />Vorlage:Webarchiv/WaybackSkriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.Skriptfehler: Ein solches Modul „TemplUtl“ ist nicht vorhanden.</ref> für Version 6 der Java-SE-Spezifikation. Seit Juni 2008 sind die von IcedTea erstellten Pakete offiziell „Java Compatible“ und dürfen die geschützte Bezeichnung OpenJDK tragen.
In Ubuntu 8.04 (veröffentlicht 24. April 2008) und Fedora 9 (13. Mai 2008) war erstmals OpenJDK auf Basis von IcedTea6 enthalten und ab Ubuntu 10.04 ersetzt OpenJDK das Sun JDK als Standard.
Mit Version b10 von OpenJDK 6 (März 2008) und Version b53 von OpenJDK 7 (April 2009) konnte mittlerweile auch der offizielle Zweig alle (relevanten) proprietären Reste ersetzen.
Nutzung in Android[Bearbeiten]
Vorlage:Veraltet Derzeit basiert ein großer Teil der Android-Programmierschnittstelle (API) auf Oracles Java-Technologie. Aus technischen Gründen aber auch nicht zuletzt wegen mehrfacher Urheberrechtsstreitigkeiten<ref>Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. In: Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Ehemals im Vorlage:Referrer (nicht mehr online verfügbar)Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.</ref> zwischen Google und Oracle werden diese APIs in Zukunft durch die entsprechenden Komponenten aus dem OpenJDK-System ersetzt.<ref>Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. heise online ehemals im Vorlage:Referrer (nicht mehr online verfügbar)Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.</ref>
Schon jetzt sind große Teile des Systems mit OpenJDK-Daten besetzt, die Oracle-Java-Daten ersetzen.
Versionen[Bearbeiten]
Stabile Veröffentlichungen (Releases):
- OpenJDK 7: 28.07.2011<ref>https://openjdk.java.net/projects/jdk7/</ref>
- OpenJDK 8: 18.03.2014<ref>https://openjdk.java.net/projects/jdk8/</ref>
- OpenJDK 9: 21.09.2017<ref>https://openjdk.java.net/projects/jdk9/</ref>
- OpenJDK 10: 20.03.2018<ref name="openjdk_release">https://openjdk.java.net/projects/jdk</ref>
- OpenJDK 11: 25.09.2018<ref name="openjdk_release"/>
- OpenJDK 12: 19.03.2019<ref name="openjdk_release"/>
- OpenJDK 13: 17.09.2019<ref name="openjdk_release"/>
- OpenJDK 14: 17.03.2020<ref name="openjdk_release"/>
- OpenJDK 15: 15.09.2020<ref name="openjdk_release"/>
- OpenJDK 16: 16.03.2021<ref name="openjdk_release"/>
- OpenJDK 17: 14.09.2021<ref name="openjdk_release"/>
- OpenJDK 18: 22.03.2022<ref name="openjdk_release"/>
- OpenJDK 19: 20.09.2022<ref name="openjdk_release"/>
- OpenJDK 20: 21.03.2023<ref name="openjdk_release"/>
- OpenJDK 21: 19.09.2023<ref name="openjdk_release" />
- OpenJDK 22: 19.03.2024<ref name="openjdk_release" />
- OpenJDK 23: 17.09.2024<ref name="openjdk_release" />
- OpenJDK 24: 18.03.2025<ref name="openjdk_release" />
- OpenJDK 25: 16.09.2025<ref name="openjdk_release" />
- OpenJDK 26: 17.03.2026<ref name="openjdk_release" />
- OpenJDK 27: in der Entwicklung<ref name="openjdk_release" />
OpenJDK-Varianten[Bearbeiten]
Skriptfehler: Ein solches Modul „Vorlage:Siehe auch“ ist nicht vorhanden. Nachdem Oracle die Lizenzbedingungen zur Auslieferung und Verwendung des Oracle JDK änderte und keine Langzeitunterstützung (englisch: long-term support, kurz: LTS) in Form von Sicherheitsaktualisierungen für das unter einer freizügigen Open-Source-Lizenz stehende Oracle OpenJDK bietet,<ref name="computerwoche">Bernard Steppan: Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. In: Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Computerwoche, Skriptfehler: Ein solches Modul „DateTime“ ist nicht vorhanden. ehemals im Vorlage:Referrer (nicht mehr online verfügbar).Vorlage:Toter Link/Core (Seite nicht mehr abrufbar. Suche im Internet Archive)Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.</ref> entwickelten Hersteller wie Alibaba, Amazon, Azul Systems, BellSoft, IBM (Adopt, OpenJ), Microsoft, Red Hat und SAP eigene Varianten.<ref>Vorlage:Cite web</ref><ref>Java is Still Free</ref>
| Version (Build) | LTS | Freizügige Lizenz |
TCK-<ref name="JCK">Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. In: Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Oracle ehemals im Vorlage:Referrer (nicht mehr online verfügbar) (Skriptfehler: Ein solches Modul „Multilingual“ ist nicht vorhanden.).Vorlage:Toter Link/Core (Seite nicht mehr abrufbar. Suche im Internet Archive)Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.</ref><ref name="TCK">Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. In: Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Oracle ehemals im Vorlage:Referrer (nicht mehr online verfügbar) (Skriptfehler: Ein solches Modul „Multilingual“ ist nicht vorhanden.).Vorlage:Toter Link/Core (Seite nicht mehr abrufbar. Suche im Internet Archive)Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.</ref> Konformität |
Unmodifizierter OpenJDK-Quelltext |
Kommerzielle Unterstützung |
|---|---|---|---|---|---|
| Adoptium<ref name="adoptium">Vorlage:Cite web</ref><ref>Vorlage:Cite web</ref> / IBM Java SDK<ref>Vorlage:Cite web</ref> | Vorlage:Ja-Feld | Vorlage:Ja-Feld | Vorlage:Ja-Feld | Vorlage:Optional | Vorlage:Ja-Feld |
| Alibaba Dragonwell<ref>Vorlage:Cite web</ref> | Vorlage:Ja-Feld | Vorlage:Ja-Feld | Vorlage:Ja-Feld | Vorlage:Nein-Feld | Vorlage:Nein-Feld |
| Amazon Corretto<ref>Vorlage:Cite web</ref> | Vorlage:Ja-Feld | Vorlage:Ja-Feld | Vorlage:Ja-Feld | Vorlage:Nein-Feld <ref>Vorlage:Cite web</ref> | Vorlage:Nein-Feld |
| Azul Zulu<ref>Vorlage:Cite web</ref> | Vorlage:Ja-Feld | Vorlage:Ja-Feld | Vorlage:Ja-Feld | Vorlage:Nein-Feld | Vorlage:Ja-Feld |
| BellSoft Liberica JDK<ref>Vorlage:Cite web</ref> | Vorlage:Ja-Feld | Vorlage:Ja-Feld | Vorlage:Ja-Feld | Vorlage:Nein-Feld | Vorlage:Ja-Feld |
| Microsoft Build of OpenJDK<ref name="ms1">Vorlage:Cite web</ref><ref name="ms2">Vorlage:Cite web</ref> | Vorlage:Ja-Feld | Vorlage:Ja-Feld | Vorlage:Ja-Feld | Vorlage:Nein-Feld | Vorlage:Ja-Feld |
| ojdkbuild<ref name="ojdkbuild1">Vorlage:Cite web</ref> | Vorlage:Ja-Feld | Vorlage:Ja-Feld | Vorlage:Nein-Feld | Vorlage:Ja-Feld | Vorlage:Nein-Feld |
| Oracle Java SE<ref>Vorlage:Cite web</ref> | Vorlage:Ja-Feld | Vorlage:Nein-Feld | Vorlage:Ja-Feld | Vorlage:Nein-Feld | Vorlage:Ja-Feld |
| Oracle OpenJDK<ref>Vorlage:Cite web</ref> | Vorlage:Nein-Feld | Vorlage:Ja-Feld | Vorlage:Ja-Feld | Vorlage:Ja-Feld | Vorlage:Nein-Feld |
| Red Hat OpenJDK<ref name="RHOJDK">Vorlage:Cite web</ref> | Vorlage:Ja-Feld | Vorlage:Ja-Feld | Vorlage:Ja-Feld | Vorlage:Nein-Feld | Vorlage:Ja-Feld |
| SAP SapMachine<ref>Vorlage:Cite web</ref> | Vorlage:Ja-Feld | Vorlage:Ja-Feld | Vorlage:Ja-Feld | Vorlage:Nein-Feld | Vorlage:Nein-Feld |
Die oben genannten OpenJDK-Implementierungen bieten Unterstützung für verschiedene Java-Versionen, Betriebssysteme und Prozessorarchitekturen. Auch eine Unterstützung für das auf Java Web Start basierende OpenWebStart sowie die freie JavaFX-Implementierung OpenJFX kann implementierungsabhängig enthalten sein; diese Technologien wurden mit Einführung von Java Version 11 als eigenständige Projekte ausgegliedert. Die Java-Applet-Technologie wird seit Java Version 9 nicht mehr angeboten, was auch auf die mangelnde Unterstützung in modernen Webbrowsern zurückzuführen ist.<ref name="computerwoche" /><ref name="computerwoche2">Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. In: Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Computerwoche, Skriptfehler: Ein solches Modul „DateTime“ ist nicht vorhanden. ehemals im Vorlage:Referrer (nicht mehr online verfügbar).Vorlage:Toter Link/Core (Seite nicht mehr abrufbar. Suche im Internet Archive)Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.</ref>
Adoptium (AdoptOpenJDK)[Bearbeiten]
Auf Basis der von IBM eingebrachten Adopt- und OpenJ-Implementierungen des OpenJDK entstand ab 2017 das AdoptOpenJDK.<ref>Difference between OpenJDK and AdoptOpenJDK</ref>
Das AdoptOpenJDK wurde im Jahr 2021 in das eigenständige Eclipse-Foundation-Projekt Adoptium überführt,<ref>Vorlage:Cite web</ref> das von der Adoptium Working Group betreut wird.<ref name="adoptium-about">Vorlage:Cite web</ref> Zu den Mitgliedern gehören unter anderem Red Hat, Alibaba, IBM, Karakun und Microsoft.
Der Microsoft-Build des OpenJDK basiert auf den Quelltexten des OpenJDK und nutzt die Build- und Testinfrastruktur von Adoptium.<ref name="ms1" /><ref name="ms2" /> Er bildet die Standard-OpenJDK-Implementierung in Microsofts Azure-Cloud-Umgebung und wurde außerdem durch Microsoft auf die ARM-Prozessorachitektur portiert.
ojdkbuild[Bearbeiten]
ojdkbuild basiert auf der mit Red Hat Enterprise Linux (RHEL) ausgelieferten OpenJDK-Implementierung, deren Quelltext im freien RHEL-Ableger CentOS verfügbar ist. ojdkbuild versucht eine weitestgehende Kompatibilität mit 64-Bit-Windows-Systemen herzustellen und bietet dafür entsprechende Installationsversionen für Microsoft Windows an. Der Veröffentlichungszyklus von Aktualisierungen für langzeitunterstützte Versionen (LTS) orientiert sich dabei an den von Oracle alle drei Monate veröffentlichten „Critical Patch Updates“ (Oracle CPU).
Das Installationsprogramm für Microsoft Windows, der Windows Installer, liefert zudem OpenJFX 8 (inklusive einer WebKit-Laufzeitumgebung) mit aus und enthält eine auf IcedTea-Web basierende freie Implementierung der Java-Web-Start-Technologie, allerdings ohne Unterstützung von Java-Applets sowie entsprechender Webbrowser-Erweiterungen. Die genannten enthaltenen Erweiterungen sind dabei nicht Teil des Quelltextes des CentOS-Projekts und werden vom ojdkbuild-Projekt ergänzt.
Ab der auf OpenJDK 11 basierenden ojdkbuild-Version sind zusätzlich „Flight Recorder“ und „Mission Control“ enthalten, die von Oracle für das OpenJDK-Projekt freigeben wurden.<ref name="ojdkbuild1" /><ref name="ojdkbuild2">Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. In: Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Red Hat ojdkbuild Community Project, Skriptfehler: Ein solches Modul „DateTime“ ist nicht vorhanden. ehemals im Vorlage:Referrer (nicht mehr online verfügbar) (Skriptfehler: Ein solches Modul „Multilingual“ ist nicht vorhanden.).Vorlage:Toter Link/Core (Seite nicht mehr abrufbar. Suche im Internet Archive)Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.</ref>
Im Juni 2022 wurde die Weiterentwicklung von ojdkbuild eingestellt.<ref>Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Ehemals im Vorlage:Referrer (nicht mehr online verfügbar) (Skriptfehler: Ein solches Modul „Multilingual“ ist nicht vorhanden.).Vorlage:Toter Link/Core (Seite nicht mehr abrufbar. Suche im Internet Archive)Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.</ref>
Weblinks[Bearbeiten]
Einzelnachweise[Bearbeiten]
<references />