Zusamenfassend:
- OpenJDK hat mehrere Bedeutungen und kann sich beziehen auf:
- kostenlose und Open Source Implementierung der Java Platform, Standard Edition (Java SE)
- Open Source Repository - der Java-Quellcode, auch bekannt als OpenJDK-Projekt
- vorgefertigte OpenJDK-Binärdateien, die von Oracle verwaltet werden
- vorgefertigte OpenJDK-Binärdateien, die von der OpenJDK-Community verwaltet werden
- AdoptOpenJDK - vorgefertigte OpenJDK-Binärdateien, die von der Community verwaltet werden ( Open Source-Lizenz )
Erläuterung:
Vorgefertigtes OpenJDK (oder Distribution) - Binärdateien, erstellt aus http://hg.openjdk.java.net/ , bereitgestellt als Archiv oder Installationsprogramm, angeboten für verschiedene Plattformen, mit einem möglichen Supportvertrag.
OpenJDK, das Quell-Repository (auch OpenJDK-Projekt genannt ), ist ein Mercurial- basiertes Open-Source-Repository, das unter http://hg.openjdk.java.net gehostet wird
. Der Java-Quellcode. Die überwiegende Mehrheit der Java-Funktionen (von der VM und den Kernbibliotheken bis zum Compiler) basiert ausschließlich auf diesem Quellrepository. Oracle hat eine alternative Gabelung davon.
OpenJDK, die Distribution (siehe Liste der Anbieter unten) - ist kostenlos wie in Bier und irgendwie kostenlos wie in Sprache , aber Sie können Oracle nicht anrufen, wenn Sie Probleme damit haben. Es gibt keinen Supportvertrag. Darüber hinaus wird Oracle nur dann Updates für eine OpenJDK-Version (die Distributionsversion) veröffentlichen, wenn es sich bei dieser Version um die neueste Java-Version handelt, einschließlich LTS-Versionen (Long Term Support). An dem Tag, an dem Oracle OpenJDK (die Distribution) Version 12.0 veröffentlicht, wird Oracle kein Update für 11.0 veröffentlichen, auch wenn es ein Sicherheitsproblem mit OpenJDK (der Distribution) Version 11.0 gibt. Wird ausschließlich von Oracle verwaltet.
Einige OpenJDK-Projekte - wie OpenJDK 8 und OpenJDK 11 - werden von der OpenJDK-Community verwaltet und bieten Releases für einige OpenJDK-Versionen für einige Plattformen. Die Community-Mitglieder haben die Verantwortung für die Veröffentlichung von Fixes für Sicherheitslücken in diesen OpenJDK-Versionen übernommen.
AdoptOpenJDK, die Distribution ist der OpenJDK-Distribution von Oracle sehr ähnlich (da sie kostenlos ist und durch Erstellen der Quellen aus dem OpenJDK-Quellrepository erstellt wird). AdoptOpenJDK als Entität portiert keine Patches zurück, dh es gibt keine AdoptOpenJDK-Gabel / -Version, die sich wesentlich vom Upstream unterscheidet (mit Ausnahme einiger Build-Skript-Patches für Dinge wie Win32-Unterstützung). Das heißt, wenn Mitglieder der Community (Oracle oder andere, aber nicht AdoptOpenJDK als Entität) Sicherheitsupdates für Aktualisierungen von OpenJDK LTS-Versionen zurückportieren, stellt AdoptOpenJDK Builds für diese bereit. Wird von der OpenJDK-Community gepflegt.
OracleJDK - ist eine weitere Distribution. Ab JDK12 gibt es keine kostenlose Version von OracleJDK. Das JDK-Distributionsangebot von Oracle ist für den kommerziellen Support vorgesehen. Sie zahlen dafür, können sich dann aber auf Oracle verlassen, um Unterstützung zu erhalten. Im Gegensatz zum OpenJDK-Angebot von Oracle bietet OracleJDK eine längere Unterstützung für LTS-Versionen. Als Entwickler können Sie nur für dieses bestimmte JDK eine kostenlose Lizenz für den persönlichen Gebrauch / die Entwicklung erhalten, aber das ist meistens ein roter Hering, da "nur die Binärdatei" im Grunde die gleiche ist wie die OpenJDK-Binärdatei. Ich denke, es bedeutet, dass Sie sicherheitspatched Versionen von LTS JDKs von Oracle-Websites herunterladen können, solange Sie versprechen, sie nicht kommerziell zu verwenden.
Hinweis . Es ist möglicherweise am besten, die OpenJDK-Builds von Oracle als "Oracle OpenJDK-Builds" zu bezeichnen.
Donald Smith, Java-Produktmanager bei Oracle, schreibt :
Im Idealfall bezeichnen wir alle Oracle JDK-Builds einfach als "Oracle JDK", je nach Ihrer Situation entweder unter der GPL oder unter der kommerziellen Lizenz. Aus historischen Gründen werden die kleinen verbleibenden Unterschiede zwar separat als OpenJDK-Builds von Oracle und als Oracle JDK bezeichnet.
OpenJDK-Anbieter und Vergleich
-------------------------------------------------- --------------------------------------
| Anbieter | Kostenlose Builds | Free Binary | Erweitert | Kommerziell | Zulässig |
| | aus Quelle | Verteilungen | Updates | Unterstützung | Lizenz |
| --------------------------------------------- ------------------------------------- |
| AdoptOpenJDK | Ja | Ja | Ja | Nein | Ja |
| Amazon - Corretto | Ja | Ja | Ja | Nein | Ja |
| Azul Zulu | Nein | Ja | Ja | Ja | Ja |
| BellSoft Liberica | Nein | Ja | Ja | Ja | Ja |
| IBM | Nein | Nein | Ja | Ja | Ja |
| jClarity | Nein | Nein | Ja | Ja | Ja |
| OpenJDK | Ja | Ja | Ja | Nein | Ja |
| Oracle JDK | Nein | Ja | Nein ** | Ja | Nein |
| Oracle OpenJDK | Ja | Ja | Nein | Nein | Ja |
| ojdkbuild | Ja | Ja | Nein | Nein | Ja |
| RedHat | Ja | Ja | Ja | Ja | Ja |
| SapMachine | Ja | Ja | Ja | Ja | Ja |
-------------------------------------------------- --------------------------------------
Kostenlose Builds aus dem Quellcode - Der Distributionsquellcode ist öffentlich verfügbar und man kann seinen eigenen Build zusammenstellen
Kostenlose Binärdistributionen - Die Distributionsbinärdateien können öffentlich heruntergeladen und verwendet werden
Erweiterte Updates - auch bekannt als LTS (Langzeit-Support) - Öffentliche Updates über den 6-monatigen Release-Lebenszyklus hinaus
Kommerzieller Support - Einige Anbieter bieten zahlenden Kunden erweiterte Updates und Kundensupport an, z. B. Oracle JDK ( Supportdetails ).
Zulässige Lizenz - Die Vertriebslizenz ist nicht schützend, z. B. Apache 2.0
Welche Java-Distribution soll ich verwenden?
In den Tagen von Sun / Oracle war es normalerweise Sun / Oracle, das die proprietären Downstream-JDK-Distributionen auf Basis von OpenJDK-Quellen produzierte. Vor kurzem hatte Oracle beschlossen, eigene proprietäre Builds nur mit der beigefügten kommerziellen Unterstützung zu erstellen. Sie veröffentlichen die OpenJDK-Builds freundlicherweise auch auf ihrer https://jdk.java.net/-Site .
Was mit JDK 11 beginnt, ist die Umstellung von der Oracle-Denkweise eines einzelnen Anbieters auf die Denkweise, bei der Sie einen Anbieter auswählen, der Ihnen eine Distribution für das Produkt unter den von Ihnen gewünschten Bedingungen bietet: Plattformen, für die sie erstellt wurden, Häufigkeit und Schnelligkeit von Releases , wie der Support strukturiert ist usw. Wenn Sie keinem der vorhandenen Anbieter vertrauen, können Sie OpenJDK sogar selbst erstellen.
Jeder Build von OpenJDK wird normalerweise aus demselben ursprünglichen Upstream-Quell-Repository (OpenJDK „das Projekt“) erstellt. Jeder Build ist jedoch ein Unikat - $ kostenlos oder kommerziell, ohne Markenzeichen oder ohne Markenzeichen, rein oder gebündelt (z. B. bietet BellSoft Liberica JDK gebündeltes JavaFX an, das ab JDK 11 aus Oracle-Builds entfernt wurde).
Wenn keine Umgebung (z. B. Linux) und / oder Lizenzanforderungen eine bestimmte Distribution definieren und Sie den Standard- JDK-Build wünschen , ist es wahrscheinlich die beste Option, OpenJDK von Oracle oder AdoptOpenJDK zu verwenden.
Zusätzliche Information
Zeit, über das JDK von Oracle von Stephen Colebourne hinauszuschauen
Java ist immer noch kostenlos von der Java Champions Community (veröffentlicht am 17. September 2018)
Java ist immer noch kostenlos 2.0.0 von der Java Champions Community (veröffentlicht am 3. März 2019)
Aleksey Shipilev über das JDK-Update- Interview von Opsian (veröffentlicht am 27. Juni 2019)