Aufgrund der jüngsten Aktualisierung der Oracle Java SE Support Roadmap- Richtlinien (Ende der kostenlosen Release-Updates von Oracle insbesondere nach März 2019) habe ich nach Alternativen zu Oracle Java gesucht. Ich habe festgestellt, dass OpenJDK eine Open-Source-Alternative ist. Und ich habe AdoptOpenJDK gefunden , das jetzt als Adoptium bekannt ist und eine vorgefertigte Binärdatei ist . Es rätselt.
Was ist der Unterschied zwischen OpenJDK und Adoptium / AdoptOpenJDK?
Antworten:
Zusamenfassend:
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 :
OpenJDK-Anbieter und Vergleich
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)
quelle
Update: AdoptOpenJDK hat seinen Namen geändert Adoptium , als Teil seines Umzugs in der Eclipse Foundation .
OpenJDK (Quellcode
Adoptium / AdoptOpenJDK) wird erstellt
Der erste liefert den Quellcode , der andere liefert Builds dieses Quellcodes.
Mehrere Anbieter von Java & OpenJDK
Adoptium der Eclipse Foundation , früher bekannt als AdoptOpenJDK , ist nur einer von mehreren Anbietern, die Implementierungen der Java-Plattform vertreiben. Diese beinhalten:
In diesem Flussdiagramm von mir können Sie einen Anbieter für eine Implementierung der Java-Plattform auswählen. Klicken / tippen Sie zum Zoomen.
Eine weitere Ressource: Diese Vergleichsmatrix von Azul Systems ist nützlich und erscheint mir wahr und fair.
Hier finden Sie eine Liste von Überlegungen und Motivationen, die bei der Auswahl eines Anbieters und der Implementierung zu berücksichtigen sind.
Einige Anbieter bieten Ihnen eine Auswahl an JIT- Technologien.
Um mehr über dieses Java-Ökosystem zu erfahren, lesen Sie Java Is Still Free
quelle