1. ホーム

[解決済み】OpenJDKとAdoptium/AdoptOpenJDKの違いについて

2022-04-17 23:59:10

質問

最近の Oracle Java SE サポートロードマップ のポリシー更新(特に2019年3月以降のOracleからの$無料リリース更新の終了)により、Oracle Javaの代替品を探しています。OpenJDKがオープンソースの代替品であることを知りました。そして、私は以下を見つけました。 AdoptOpenJDKを採用する , 既知 をAdoptiumと呼ぶ。 プリビルドバイナリ . パズルをするのです。

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

解決方法は?

要するに

  • OpenJDK は複数の意味を持ち、参照することができます。
    • Java Platform, Standard Edition (Java SE) のフリー・オープンソース実装。
    • オープンソースリポジトリ - Java ソースコード、別名 OpenJDK プロジェクト
    • オラクルが管理するプリビルドOpenJDKバイナリ
    • OpenJDKコミュニティによってメンテナンスされているプリビルドOpenJDKバイナリ
  • AdoptOpenJDK - コミュニティによってメンテナンスされているプリビルドOpenJDKバイナリ ( オープンソースライセンス )

説明します。

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

OpenJDK、ソースリポジトリ (とも呼ばれます)。 OpenJDKプロジェクト ) - は マーキュリアル -ベースのオープンソースリポジトリで、ホストは http://hg.openjdk.java.net . Java のソースコードです。Java の機能の大部分 (VM やコアライブラリからコンパイラまで) は、このソースリポジトリのみをベースにしています。オラクルは、これの代替フォークを持っています。

OpenJDK、ディストリビューション (下記のプロバイダ一覧を参照) - は フリービール というような 言論の自由 しかし、問題があってもオラクルに電話することはできません。サポート契約もない。さらに、オラクルは、どのOpenJDK(ディストリビューション)バージョンに対しても、そのリリースがLTS(長期サポート)リリースを含む最新のJavaリリースである場合にのみ、アップデートをリリースすることになっています。オラクルがOpenJDK(ディストリビューション)バージョン12.0をリリースした日に、OpenJDK(ディストリビューション)バージョン11.0にセキュリティ問題があったとしても、オラクルは11.0用のアップデートをリリースすることはないでしょう。メンテナンスはオラクルのみで行っています。

いくつかのOpenJDKプロジェクト - 例えば OpenJDK 8 OpenJDK 11 - は、OpenJDK コミュニティによってメンテナンスされ、いくつかのプラットフォーム用のいくつかの OpenJDK バージョンのリリースを提供します。コミュニティメンバーは、これらの OpenJDK バージョンに存在するセキュリティ脆弱性の修正版をリリースする責任を負っています。

AdoptOpenJDK、ディストリビューション は、Oracle の OpenJDK ディストリビューションと非常によく似ています (無料であり、OpenJDK ソースリポジトリのソースをコンパイルして作成されたビルドであるという点です)。つまり、上流と大きく異なるAdoptOpenJDKの「フォーク/バージョン」は存在しません(Win32サポートなどのためのいくつかのビルドスクリプトパッチを除く)。つまり、もしコミュニティのメンバー(オラクルやその他、ただしAdoptOpenJDKという組織ではない)が、セキュリティ修正をOpenJDK LTSバージョンの更新にバックポートするなら、AdoptOpenJDKはそれらのためのビルドを提供することになるでしょう。OpenJDKコミュニティによってメンテナンスされます。

オラクルJDK - は、また別のディストリビューションです。JDK12から、OracleJDKの無料版はありません。OracleのJDKディストリビューションは、商用サポートを目的としています。お金を払えば、Oracleのサポートに頼ることができるのです。OracleのOpenJDKの提供とは異なり、OracleJDKは、LTSバージョンのための長いサポートが付属しています。開発者であれば、この特定のJDKの個人/開発用ライセンスのみを無料で取得できますが、「バイナリのみ」は基本的にOpenJDKのバイナリと同じなので、これはほとんど無意味なことなのです。商業的に使用しないことを約束する限り、Oracleのウェブサイトからセキュリティパッチを適用したLTS JDKのバージョンをダウンロードすることができるということでしょう。

備考 . Oracle による OpenJDK ビルドを "Oracle OpenJDK builds" と呼ぶのがベストかもしれません。

オラクル社 Javaプロダクトマネージャー ドナルド・スミス氏 は書きます。 :

理想的には、すべてのOracle JDKビルドを単に"Oracle JDK"と呼びたいところです。 GPLまたは商用ライセンスのもとで、あなた次第です。 の状況です。しかし、歴史的な理由から、わずかながら残っている ここでは、両者を区別して、オラクルの OpenJDKのビルドとOracle JDKのビルド。


OpenJDKのプロバイダと比較

----------------------------------------------------------------------------------------
| プロバイダ|フリービルド|フリーバイナリ|拡張版|商用|許可型
| ライセンス|ソースから|配布|アップデート|サポート|ライセンス|など
|--------------------------------------------------------------------------------------|
| AdoptOpenJDK | はい | いいえ | はい
| Amazon - Corretto|はい|はい|いいえ|はい|||||||。
| アズール Zulu|いいえ|はい|はい|はい|いいえ|はい|はい|はい
| ベルソフトリベリカ|いいえ|はい|はい|はい|はい
| IBM|いいえ|いいえ|はい|はい|いいえ
| jClarity|なし|あり|あり|あり|あり|あり|あり|なし
| OpenJDK|はい|はい|いいえ|はい||||。
| オラクルJDK|いいえ|はい|いいえ**|はい|いいえ
| オラクルOpenJDK|はい|はい|いいえ|はい||||です。
| ojdkbuild|はい|はい|いいえ|はい||||です。
| レッドハット|はい|はい|はい|はい|はい|はい|はい
| SapMachine|Yes|Yes|Yes|Yes|Yes|Yes|Yes|Ye
----------------------------------------------------------------------------------------

<サブ ソースからの無償ビルド - ディストリビューションのソースコードは公開されており、自分でビルドを組み立てることができます。

<サブ 無料バイナリー配信 - ディストリビューションバイナリは、一般にダウンロードおよび使用することができます。

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

<サブ 商用サポート - プロバイダによっては、有償の顧客に対して拡張アップデートやカスタマーサポートを提供しています。例えば、Oracle JDK ( サポート詳細 )

<サブ パーミッシブ・ライセンス - 配布ライセンスが非保護的である場合(例:Apache 2.0


どのJavaディストリビューションを使うべきですか?

Sun/Oracle時代には、OpenJDKのソースをベースに、Sun/Oracleが独自のダウンストリームJDKディストリビューションを作成することが一般的でした。最近、Oracleは、商用サポートが付属した独自のビルドのみを行うことを決定しました。彼らは、快くOpenJDKのビルドも彼らの https://jdk.java.net/ のサイトをご覧ください。

JDK11から起こっていることは、シングルベンダー(Oracle)の考え方から、製品のディストリビューションを提供してくれるプロバイダーを、プラットフォーム、リリースの頻度と迅速さ、サポートの構成など、自分の好きな条件で選ぶという考え方へのシフトです。既存のベンダーのどれも信用できないのであれば、OpenJDKを自分で構築することも可能です。

OpenJDKの各ビルドは、通常、同じオリジナルの上流ソースリポジトリ(OpenJDK "the project")から作成されます。しかし、各ビルドは非常にユニークで、$フリーかコマーシャルか、ブランドかノーブランドか、純粋かバンドルか(例えば、BellSoft Liberica JDKは、JDK 11からOracleビルドから削除されたJavaFXをバンドルしている)などがある。

環境(例:Linux)やライセンス要件がなく、特定のディストリビューションが必要な場合、また、最も多くの 標準 JDKビルドの場合、おそらく最良の選択肢は、OracleによるOpenJDKまたはAdoptOpenJDKを使用することです。


追加情報

オラクルのJDKの先を見据える時 by Stephen Colebourne

Javaはまだ無料 by Java Champions コミュニティ(2018年9月17日公開)

Java is Still Free 2.0.0 by Java Champions コミュニティ(2019年3月3日公開)

アレクセイ・シピレフ氏 JDKのアップデートについて オプシアンによるインタビュー(2019年6月27日公開)