OpenJDKとAdoptium / AdoptOpenJDKの違い


182

最近のOracle Java SEサポートロードマップポリシーの更新(特に2019年3月以降のOracleからの$ freeリリース更新の終了)のため、Oracle Javaの代替手段を探しています。OpenJDKがオープンソースの代替手段であることがわかりました。そして、私が見つけたAdoptOpenJDK現在知られているAdoptiumとして、ビルド済みのバイナリを。それは困惑します。

OpenJDKとAdoptium / AdoptOpenJDKの違いは何ですか?


更新:AdoptOpenJDK、Eclipse Foundationへの移行の一環として、名前をAdoptiumに変更しました。
バジルブルク

回答:


270

要するに:

  • OpenJDKには複数の意味があり、以下を参照できます。
    • Java Platform、Standard Edition(Java SE)の無料のオープンソース実装
    • オープンソースリポジトリ — Javaソースコード、別名OpenJDKプロジェクト
    • Oracleが保守するビルド済みOpenJDKバイナリ
    • OpenJDKコミュニティが管理するビルド済みのOpenJDKバイナリ
  • AdoptOpenJDK —コミュニティによって維持されるビルド済みのOpenJDKバイナリ(オープンソースライセンス

説明:

ビルド済みのOpenJDK(またはディストリビューション)— http://hg.openjdk.java.net/から構築されたバイナリ。アーカイブまたはインストーラーとして提供され、さまざまなプラットフォーム用に提供されており、サポート契約が結ばれている可能性があります。

ソースリポジトリOpenJDKプロジェクトとも呼ばれる)であるOpenJDK - Mercurialベースのオープンソースリポジトリであり、http://hg.openjdk.java.netでホストされています 。Javaソースコード。Java機能の大部分(VMおよびコアライブラリからコンパイラまで)は、このソースリポジトリのみに基づいています。オラクルには、これの代替フォークがあります。

OpenJDK、ディストリビューション(以下のプロバイダーのリストを参照)- ビールのように無料で、スピーチのように無料ですが、問題がある場合はOracleに連絡することはできません。サポート契約はありません。さらに、そのリリースがLTS(長期サポート)リリースを含む最新のJavaリリースである場合に限り、OracleはOpenJDK(ディストリビューション)バージョンへのアップデートのみをリリースします。OracleがOpenJDK(ディストリビューション)バージョン12.0をリリースした日。OpenJDK(ディストリビューション)バージョン11.0にセキュリティの問題がある場合でも、Oracleは11.0のアップデートをリリースしません。オラクルのみが保守。

OpenJDK 8OpenJDK 11などの一部のOpenJDKプロジェクトは、OpenJDKコミュニティによって維持され、一部のプラットフォームの一部のOpenJDKバージョンのリリースを提供します。コミュニティメンバーは、これらのOpenJDKバージョンのセキュリティ脆弱性の修正をリリースする責任を負っています。

AdoptOpenJDK、ディストリビューションはOracleのOpenJDKディストリビューションと非常に似ています(無料であり、OpenJDKソースリポジトリからソースをコンパイルして作成されたビルドです)。エンティティとしてのAdoptOpenJDKはパッチをバックポートしません。つまり、アップストリームとは実質的に異なるAdoptOpenJDK 'fork / version'はありません(Win32サポートなどのビルドスクリプトパッチを除く)。つまり、コミュニティのメンバー(Oracleまたはその他、ただしエンティティとしてAdoptOpenJDKではない)がOpenJDK LTSバージョンのアップデートにセキュリティ修正をバックポートする場合、AdoptOpenJDKはそれらのビルドを提供します。OpenJDKコミュニティによって管理されています。

OracleJDK-さらに別のディストリビューションです。JDK12以降、OracleJDKの無料バージョンはなくなります。OracleのJDKディストリビューションは、商用サポートを目的としています。あなたはこれにお金を払いますが、それからサポートのためにOracleに依存するようになります。OracleのOpenJDKオファリングとは異なり、OracleJDKにはLTSバージョンのより長いサポートが付属しています。開発者は、この特定のJDKのみの個人/開発用の無料ライセンスを取得できますが、「バイナリのみ」は基本的にOpenJDKバイナリと同じであるため、これはほとんどの場合ニシンです。LTS JDKのセキュリティパッチバージョンをOracleのWebサイトからダウンロードできることを意味します。

。OracleによるOpenJDKビルドを「Oracle OpenJDKビルド」と呼ぶのが最適な場合があります。

オラクルのJava製品マネージャーであるドナルド・スミス氏はこう書いている

理想的には、状況に応じて、すべてのOracle JDKビルドを「Oracle JDK」と呼び、GPLまたは商用ライセンスのいずれかを使用します。ただし、歴史的な理由により、残りの小さな違いは存在しますが、OracleのOpenJDKビルドおよびOracle JDKとして個別に参照します。


OpenJDKプロバイダーと比較

-------------------------------------------------- --------------------------------------
| プロバイダー| 無料ビルド| 無料のバイナリ| 拡張| コマーシャル| 許容|
| | ソースから| ディストリビューション| アップデート| サポート| ライセンス|
| ------------------------------------------------- ------------------------------------- |
| AdoptOpenJDK | はい| はい| はい| いいえ| はい|
| アマゾン–コレット| はい| はい| はい| いいえ| はい|
| アズールズールー| いいえ| はい| はい| はい| はい|
| BellSoft Liberica | いいえ| はい| はい| はい| はい|
| IBM | いいえ| いいえ| はい| はい| はい|
| jClarity | いいえ| いいえ| はい| はい| はい|
| OpenJDK | はい| はい| はい| いいえ| はい|
| Oracle JDK | いいえ| はい| いいえ** | はい| いいえ|
| Oracle OpenJDK | はい| はい| いいえ| いいえ| はい|
| ojdkbuild | はい| はい| いいえ| いいえ| はい|
| RedHat | はい| はい| はい| はい| はい|
| SapMachine | はい| はい| はい| はい| はい|
-------------------------------------------------- --------------------------------------

ソースからの無料ビルド -配布ソースコードは公開されており、独自のビルドをアセンブルできます

無料のバイナリディストリビューション -ディストリビューションバイナリをダウンロードして使用できます。

拡張アップデート -別名LTS(長期サポート)-6か月のリリースライフサイクルを超えるパブリックアップデート

商用サポート -一部のプロバイダーは、Oracle JDKなど、有料の顧客に拡張アップデートと顧客サポートを提供しています(サポートの詳細

許容ライセンス -配布ライセンスは保護されていません(例:Apache 2.0)


どのJavaディストリビューションを使用すればよいですか?

Sun / Oracleの時代は、通常、Sun / OracleがOpenJDKソースに基づく独自のダウンストリームJDKディストリビューションを作成していました。最近、オラクルは、商用サポートを添付してのみ独自のビルドを行うことを決定しました。彼らはOpenJDKビルドもhttps://jdk.java.net/サイトで丁寧に公開しています

JDK 11で始まっているのは、単一ベンダー(Oracle)の考え方から、製品のディストリビューションを提供するプロバイダーを選択する考え方への移行です。 、サポートの構造など。既存のベンダーを信頼しない場合は、OpenJDKを自分で構築することもできます。

OpenJDKの各ビルドは通常、同じ元の上流のソースリポジトリ(OpenJDKの「プロジェクト」)から作成されます。ただし、各ビルドは非常にユニークです-$ freeまたは商用、ブランドまたは非ブランド、純粋またはバンドル(たとえば、BellSoft Liberica JDKは、JDK 11以降のOracleビルドから削除されたバンドルJavaFXを提供しています)。

特定のディストリビューションを定義する環境(Linuxなど)やライセンス要件がない場合、および最も標準的な JDKビルドが必要な場合は、おそらくOracleまたはAdoptOpenJDKによるOpenJDKを使用するのが最良のオプションです。


追加情報

Stephen ColebourneによるOracleのJDKの先を見る時

Javaは Java Championsコミュニティによってまだ無料です(2018年9月17日に公開)

Java ChampionsコミュニティによるJavaはまだ無料2.0.0(2019年3月3日公開)

Aleksey Shipilevによる、JDK更新についてのOpsianインタビュー(2019年6月27日公開)


8
他のベンダーがAzul SystemsのZuluZing製品などのOpenJDKに基づくJava実装を提供しているという言及を追加するかもしれません。もう1つはEclipse OpenJ9プロジェクトです。
バジルブルク2018


1
@MikhailKholodkov Apacheライセンスについて正しくありません。Apache License 2.0を使用したAdoptOpenJDKへのリンクは、バイナリの生成を支援するために作成したビルドスクリプトにのみ適用されます。バイナリは、GPLとリンク例外ライセンスを使用してOpenJDKプロジェクトから取得したソースコードからビルドされます。
バジルブルク

2
@GarrettWilson AdoptOpenJDKが行うことは2つだけです。(a)OpenJDKが提供するソースコードを使用してバイナリとインストーラをビルドし、(b)これらのバイナリでテストを実行します。AdoptOpenJDKは、Javaプラットフォームを実装するためのソースコードのリポジトリを維持しませ。つまり、OpenJDKはソースコードのみであり、AdoptOpenJDKはバイナリ+インストーラのみです。AdoptOpenJDKは、作成ツールとテストスイート用のコードのみを作成します。AdoptOpenJDKのほかに、OpenJDKプロジェクトによって提供されるソースコードに基づくビルドを提供する会社もいくつかあります。AzulSystems、Oracle、BellSoft、Amazon AWS、RedHat / IBM、SAPなどです。
バジルブルク

1
@GarretWilson AdoptOpenJDKが3番目の処理を実行することを追加する必要があります
バジルブルク

62

更新: AdoptOpenJDK、Eclipse Foundationへの移行の一環として、名前をAdoptiumに変更しました。


OpenJDKの ➙ソースコード
Adoptium / AdoptOpenJDK ➙ビルド

OpenJDKとAdoptOpenJDKの違い

最初はソースコードを提供し、他はそのソースコードのビルドを提供ます。

JavaとOpenJDKのいくつかのベンダー

以前AdoptOpenJDKとして知られていたEclipse FoundationのAdoptiumは、Javaプラットフォームの実装を配布するいくつかのベンダーの1つにすぎません。これらには以下が含まれます:

  • Eclipse Foundation(Adoptium / AdoptOpenJDK)
  • Azul Systems
  • オラクル
  • レッドハット/ IBM
  • BellSoft
  • SAP
  • アマゾンAWS
  • … もっと

Javaプラットフォームの実装のためにベンダーを選ぶ際の手引きとして、この私のフローチャートを参照してください。クリック/タップしてズームします。

Java 11実装のベンダーを選択する際のガイドとなるフローチャート

別のリソース:Azul Systemsによるこの比較マトリックスは有用であり、私の心には真実で公平に思えます。

以下は、ベンダーと実装を選択する際に考慮すべき考慮事項と動機のリストです。

Javaのベンダーを選択する動機

一部のベンダーは、JITテクノロジーの選択肢を提供しています。

HotSpotとJRockitのマージの履歴、およびAdoptOpenJDKで利用可能なOpenJ9を示す図

このJavaエコシステムについてさらに理解するにJava Is Still Freeをお読みください


1
「OpenJDK」がソースを参照している場合、hub.docker.com / _ / openjdkhub.docker.com/_/adoptopenjdkの違いは何ですか?
ブコラン

1
@bcoughlanこれらの2つの製品の発行元に尋ねる必要があります。最初の1つは、OpenJDKプロジェクトがロゴを作成したという印象を与えた可能性があるため、ロゴと命名の使用について誤解を招くものですが、そうではありません。最初のものはOpenJDKによって与えられた商標通知の項目2に違反しているかもしれませんが、私は弁護士ではありません。
バジルブルク

1
@SanderVerhagen OpenJDKサイトのそのダウンロードページへのリンクを提供できますか?そのような申し出はありません。Windows、macOS、およびLinux用のOracleのOpenJDK JDKバイナリへのリンクは、別のWebサイトjdk.java.netにあります。そのサイトとそのバイナリダウンロードは、OpenJDKプロジェクトではなく、Oracleによってコミュニティへの礼儀として提供されています。ホームページは言う:Javaの開発キットには、Oracleから、構築します。この製品を、フローチャートの右上隅にある青いバレルの2番目のバブルとして表示します。
バジルブルク

1
@SanderVerhagenあなたのリンクは、OpenJDKの外部にあると私が疑ったように、別のWebサイトにリンクしています。サイトjdk.java.net/14ありません OpenJDKのウェブサイトの一部、またそれは、OpenJDKのプロジェクトの一部です。つまり、openjdk.java.netjdk.java.netではありませ。もう一度、私のフローチャートの青いバレルの上部にある2つの泡を見てください。左上のOracle製品はその商用製品です。右上のOracle製品は、GPLライセンスの無償ビルドです。リンクからこの特定の製品にアクセスできます。
バジルブルク

1
@SanderVerhagen製品の名前に混乱しているのではないかと思います。「Java」という言葉はOracleの商標であり、許可を得てのみ使用できます。したがって、ほとんどのベンダーはその商標を使用していません。代わりに、ほとんどのベンダーは命名の一部として「Java」ではなく「OpenJDK」という用語を使用しています。これらのベンダーは、OpenJDKプロジェクトから取得したソースコードからビルドを作成しています。OpenJDKののプロジェクトはソースコードだけを提供し、インストーラは、ないのビルドではありません。ビルド/インストーラーの場合は、自分で作成するか、ベンダーから入手する必要があります。「Javaはまだ無料です」を読むことをお勧めします
バジル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.