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-Firmen wie Microsoft, Apple, IBM und SAP unterstützt.

OpenJDK

OpenJDK logo.svg
Basisdaten

Entwickler Oracle[1]
Aktuelle Version 15[2]
(15. September 2020)
Betriebssystem Linux[3], Windows[3], macOS[3], AIX[3]
Programmiersprache Java[4], C++
Kategorie Freie Java-Implementierung
Lizenz GNU General Public License, version 2.0 or later with library exception[5]
openjdk.java.net

GeschichteBearbeiten

Nach Monaten der Spekulation seit der Offenlegung von Solaris über eine Offenlegung von Java[6] 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 Kit darstellt, sein Versprechen einzulösen.[7] 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.[8][9]

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 (bzw. hauptsächlich damit verbundene technische Unterstützungsleistungen) vermarktet, die zumindest zunächst weiterhin die in OpenJDK ersetzten unfreien Bestandteile enthält.[7] Da auch Bedarf an einer freien Implementierung der Java SE 6 bestand, wurde von OpenJDK 7 ein OpenJDK 6 abgespalten.[10]

Ab OpenJDK 7 wird auch Mac OS X unterstützt.[11]

Ersetzungen proprietärer TeileBearbeiten

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.[12]

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, welcher 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,[13][14] dessen Leistung der von Pisces’ noch deutlich überlegen ist.[15] 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[16] ersetzt, Code zum Skalieren und Rastern von Schriftarten durch die FreeType-Bibliothek und die Farbmanagement-Software durch das bewährte freie LittleCMS.[14]

IcedTeaBearbeiten

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[17] 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 AndroidBearbeiten

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[18] zwischen Google und Oracle werden diese APIs in Zukunft durch die entsprechenden Komponenten aus dem OpenJDK-System ersetzt.[19]

Schon jetzt sind große Teile des Systems mit OpenJDK-Daten besetzt, die Oracle-Java-Daten ersetzen.

OpenJDK-VariantenBearbeiten

Nachdem Oracle die Lizenzbedingungen zur Auslieferung und Verwendung des Oracle JDK änderte und keine Langzeitunterstützung (engl.: long-term support, kurz: LTS) in Form von Sicherheitsaktualisierungen für das unter einer freizügigen Open-Source-Lizenz stehende Oracle OpenJDK bietet,[20] entwickelten Hersteller wie Alibaba, Amazon, Azul Systems, BellSoft, IBM (Adopt, OpenJ), Red Hat und SAP eigene Varianten.[21][22][23]

Version (Build) LTS Freizügige
Lizenz
TCK-[24][25]
Konformität
Unmodifizierter
OpenJDK-Quelltext
Kommerzielle
Unterstützung
AdoptOpenJDK[26] / IBM Java SDK[27] ja ja nein Optional ja
Alibaba Dragonwell[28] ja ja ja nein nein
Amazon Corretto[29] ja ja ja nein [30] nein
Azul Zulu[31] ja ja ja nein ja
BellSoft Liberica JDK[32] ja ja ja nein ja
ojdkbuild[33] ja ja nein ja nein
Oracle Java SE[34] ja nein ja nein ja
Oracle OpenJDK[35] nein ja ja ja nein
Red Hat OpenJDK[36] ja ja ja nein ja
SAP SapMachine[37] ja ja ja nein nein

Es werden Installationsprogramme für verschiedene Betriebssysteme und Prozessorarchitekturen angeboten, die auch eine Unterstützung für das auf Java Web Start basierende OpenWebStart sowie die freie JavaFX-Implementierung OpenJFX enthalten können; diese 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.[20][38]

ojdkbuildBearbeiten

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.[33][39]

WeblinksBearbeiten

EinzelnachweiseBearbeiten

  1. openjdk.java.net.
  2. Java SE 15 / JDK 15: General Availability. (abgerufen am 7. Oktober 2020).
  3. a b c d adoptopenjdk.net.
  4. The OpenJDK Open Source Project on Open Hub: Languages Page. In: Open Hub. (abgerufen am 4. November 2020).
  5. openjdk.java.net.
  6. linuxtoday.com
  7. a b Open-Source-Java Details und Reaktionen.
  8. What the Community is saying. sun.com (Memento vom 6. Juli 2008 im Internet Archive)
  9. linuxfr.org/comments/774737,1.html
  10. openjdk.java.net
  11. Oracle and Apple Announce OpenJDK Project for Mac OS X (Memento vom 13. November 2010 im Internet Archive)
  12. sun.com
  13. openjdk.java.net
  14. a b openjdk.java.net
  15. Ductus vs Cairo vs Pisces (Memento vom 20. August 2011 im Internet Archive)
  16. Gervill – Software Synthesizer (Memento vom 4. Oktober 2011 im Webarchiv archive.today)
  17. langel.wordpress.com/2008/04/04/icedtea6-11-released (Memento vom 31. Oktober 2008 im Internet Archive)
  18. Java-Rechtsstreit: US-Justiz befürwortet Urheberrecht auf APIs – Golem.de. In: www.golem.de. Abgerufen am 4. Januar 2016.
  19. Android N: Googles Mobilsystem wird auf Open-Source-Java OpenJDK aufsetzen. heise online, abgerufen am 4. Januar 2016.
  20. a b Bernard Steppan: Oracle ändert Lizenzmodell: Kostenexplosion bei Java? In: computerwoche.de. Computerwoche, 11. Dezember 2018, abgerufen am 22. August 2020.
  21. Time to look beyond Oracle's JDK.
  22. Difference between OpenJDK and AdoptOpenJDK
  23. Java is Still Free
  24. Technology Compatibility Kit (TCK): Gaining Access to the JCK. In: openjdk.java.net. Oracle, abgerufen am 22. August 2020 (englisch).
  25. OCTLA Signatories List. In: https://openjdk.java.net/. Oracle, abgerufen am 22. August 2020 (englisch).
  26. AdoptOpenJDK - Open source, prebuilt OpenJDK binaries. Abgerufen am 10. Juli 2020.
  27. Home - Java SDK. Abgerufen am 10. Juli 2020.
  28. Alibaba Dragonwell. Abgerufen am 10. Juli 2020.
  29. Amazon Corretto. Abgerufen am 10. Juli 2020.
  30. Amazon Introduces Amazon Corretto Crypto Provider (ACCP).
  31. Zulu Community: Free, tested builds of OpenJDK managed by Azul engineers. Abgerufen am 10. Juli 2020.
  32. Download Liberica JDK, OpenJDK, Java 8, Java 11, Linux, Windows, macOS. Abgerufen am 10. Juli 2020.
  33. a b ojdkbuild/ojdkbuild. Abgerufen am 10. Juli 2020.
  34. Java SE. Abgerufen am 10. Juli 2020.
  35. JDK Builds from Oracle. Abgerufen am 10. Juli 2020.
  36. OpenJDK Overview. Abgerufen am 10. Juli 2020.
  37. An OpenJDK release maintained and supported by SAP. Abgerufen am 10. Juli 2020.
  38. Java 11 ohne WebStart und JavaFX: Oracle will Java verschlanken. In: computerwoche.de. Computerwoche, 20. Dezember 2018, abgerufen am 22. August 2020.
  39. ojdkbuild: Motivation. In: github.com/ojdkbuild/ojdkbuild. Red Hat ojdkbuild Community Project, 21. Oktober 2018, abgerufen am 22. August 2020 (englisch).