OpenJDKのキャッチアップのメモ
概要
2018年9月にリリース予定のOpenJDK 11に備えて、OpenJDKについてキャッチアップした結果のメモです。
OpenJDKについて
参考
ライセンス
GNU General Public License, version 2, with the Classpath Exception
GPLリンク例外を持つGNU General Public License (GNU GPL 2および2+)
Licensing
What open-source license is OpenJDK published under?GPL v2 for almost all of the virtual machine, and GPL v2 + the Classpath exception for the class libraries and those parts of the virtual machine that expose public APIs.
バイナリの配布
OracleがビルドしたバイナリがJDK Builds from Oracleからダウンロードできます。
アーカイブの配布
Archived OpenJDK GA Releasesから入手できます。
ソースコード
ソースコードはMercurialという分散型VCSで管理され、OpenJDK Mercurial Repositoriesにホスティングされています。
なお、OpenJDKをインストールしたディレクトリ直下のlibディレクトリにsrc.zipが同梱されていますが完全なソースコードを含んでいません。
バグ管理
JDK BUG System (JBS)、およびOpenJDK Wikiで管理されています。
コードベースでOpenJDKとOracle JDKに違いがあるか
下記に引用するOpenJDKのFAQでは、Oracle JDKはOpenJDKのソースコードをベースにしていると説明されています。
Oracle JDK and OpenJDK
Is Oracle JDK based on OpenJDK?Yes. Oracle JDK is based on the OpenJDK source code. In addition, it contains closed-source components. The final result is licensed under a Binary Code License.
他にOracleの公式情報を探したのですが見つからなかったので、代わりにStackOverflowの「Differences between Oracle JDK and OpenJDK」に付いた回答の一部を下記に引用します。
Both OpenJDK and Oracle JDK are created and maintained currently by Oracle only.
API JavaDoc
バイナリのダウンロードページにリンクがありますが、リンク先はOracleのサイトになっています。
JDK 11 Early-Access Builds版も用意されています。(GA版も閲覧できるかどうかは確認していません。)
-
JDK 10.0.1 General-Availability Release
- Java® Platform, Standard Edition & Java Development Kit Version 10 API Specification
-
JDK 11 Early-Access Builds
- Java® Platform, Standard Edition & Java Development Kit Version 11 API Specification
Community Code Review
ソースコードだけでなくAPIドキュメントの変更についてもレビューが行われています。
-
Java SE 11 (18.9) ( JSR 384) Specification — DRAFT 1
- 2018/5/23 11:58 -0700
-
Java SE 11 (18.9) ( JSR 384) Specification — DRAFT 2
- 2018/6/8 12:12-0700
-
Java SE 11 (18.9) ( JSR 384) Specification — DRAFT 3
- 2018/6/25 00:18 -0700
Draft2 AnnexesのA2 API Specification differencesで「Java SE 10 (build 45)」と「Java SE 11 (build 17)」のAPIの差分が確認できます。
Docker OFFICIAL REPOSITORY
AdoptOpenJDKについて
AdoptOpenJDK Communityが提供するOSSのJDKです。コミュニテーのTier-1スポンサーに、IBM、London Java Community (LJC)、Microsoft Azure、Packetがあります(2018年8月現在)。
正直なところ、今回のOracle JDKの有償化を受けて初めてAdoptOpenJDKを知りましたが、今後、Oracle JDK以外を選択する場合は、OpenJDKよりAdoptOpenJDKを推奨される方が結構いるような印象を受けました。
ライセンス
GPL v2 with Classpath Exception
OpenJDK code itself is licensed under GPL v2 with Classpath Exception.
バイナリの配布
Latest release | AdoptOpenJDKから入手できます。
アーカイブの配布
Archive | AdoptOpenJDKから入手できます。
バグ管理
AdoptOpenJDK自体のバグ管理は行われていないようですが、build scriptに関する問題はGitHubのIssueで管理されています。
Docker OFFICIAL REPOSITORY
adoptopenjdk AdoptOpenJDK Community Project
Oracle JDKについて
参考
-
Oracle Java SEサポート・ロードマップ
- TBA = To be announced (後日発表)
- 日本オラクルが今後のJavaのリリースモデルと公式バイナリについてあらためてJava Day Tokyoで説明。オラクルによる公式バイナリの無償提供はOpenJDKベース - Publickey
ライセンス
Binary Code License (BCL)
- Oracle Binary Code License Agreement for the Java SE Platform Products and JavaFX
- Java SEプラットフォーム製品及びJavaFXに関するオラクル・バイナリ・コード・ライセンス契約 【日本語参考訳】
Oracleが配布するJDKのバイナリ
JDK Builds from OracleよりOracleがビルドしたバイナリをダウンロードできます。
2018年6月17日時点で、JDK 10とJDK 11 Early-Access Buildsがダウンロードできます。
JDK 11以降もOracleがビルドしたバイナリが提供されますが、無償配布はOpenJDKをビルドしたバイナリで、Oracle JDKは有償契約のユーザーにのみ配布されます。
Oracle JDKは、JDK 11以降は3年ごとにメジャーバージョンがリリースされます。なのでOracle JDK 11 (2018年9月)の次は、Oracle JDK 17 (2021年9月)の予定です。
OpenJDKは、JDK 11以降は6カ月ごとに12,13,14とマイナーバージョンがリリースされます。こちらはLTSはないようなのでJDK 11でも次のバージョンのJDK 12がリリースされればサポート終了となります。
(OpenJDKにもLTSが導入される可能性があるというニュースもありますがまだ確定ではないようです。)
JDK 11 Early-Access Builds
図のように無償提供のOpenJDK buildsと、GAより有償提供となるOracle JDK buildsの両方がダウンロードできます。(ダウンロードするには、Early Adopter Development License Agreement (アーリーアダプター開発ライセンス契約)に同意する必要があります)
契約内容に一部、太字で強調されている箇所があったので下記に引用します。
意訳すると
1) 本プログラムはGAではなく、欠陥、セキュリティ脆弱性があっても修正しないことがある。
2) 本プログラムをリリース目的のプロダクト開発に使用できない。
Oracle Technology Network Early Adopter Development License Agreement
You acknowledge that (1) the Programs are not generally available and may have defects, security vulnerabilities, or other deficiencies that may not and/or cannot be corrected by Us and are subject to change at Our sole discretion; and (2) We may not produce a production release version of the Programs and any development efforts undertaken by You are at Your own risk. We may audit Your use of the Oracle Technology.
OpenJDK builds
ダウンロードファイル: openjdk-11-ea+18_windows-x64_bin.zip
Windows/x64版はzip形式のアーカイブファイルで提供されるようになっています。(以前はtar.gz)
下記のようにバージョン情報には"openjdk"と出力されます。
> java -version
openjdk version "11-ea" 2018-09-25
OpenJDK Runtime Environment 18.9 (build 11-ea+18)
OpenJDK 64-Bit Server VM 18.9 (build 11-ea+18, mixed mode)
ちなみにOpenJDK 10のバージョン情報
> java -version
openjdk version "10.0.1" 2018-04-17
OpenJDK Runtime Environment (build 10.0.1+10)
OpenJDK 64-Bit Server VM (build 10.0.1+10, mixed mode)
Oracle JDK builds
ダウンロードファイル: jdk-11-ea+18_windows-x64_bin.exe
Oracle JDK 10までと同様にexe形式のインストーラーで提供されています。
> java -version
java version "11-ea" 2018-09-25
Java(TM) SE Runtime Environment 18.9 (build 11-ea+18)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11-ea+18, mixed mode)
ちなみにOracle JDK 10のバージョン情報
> java -version
java version "10.0.1" 2018-04-17
Java(TM) SE Runtime Environment 18.3 (build 10.0.1+10)
Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10.0.1+10, mixed mode)
OTNのダウンロードページ
Java SE - DownloadsからダウンロードできるJDKはOracle JDK 10.xで最後になる予定です。
有償契約したユーザーに配布されるOracle JDK 11がどこから入手できるかは調べ切れていません。
コメントで教えて頂きましたところ、有償サポート契約を結ぶと、My Oracle Supportよりダウンロードできるようになるようです。(私自身、有償サポート契約を結んでいないので確認できていません)
My Oracle Supportを利用するにはOracle AccountにサポートIDを紐づける必要があります。
サポートIDは、サポート契約締結時に送られてくるWelcome Letterというメールに記載されているそうです。
アーカイブの配布
Oracle Java Archiveから入手できます。
ソースコード
Oracle JDKのソースコードは公開されていません。
下記に引用した通り(JDK 8のものです)、Oracle JDKをインストールしたディレクトリ直下のlibディレクトリにあるsrc.zipには完全なソースコードは含まれておらず、これからJDKをビルドすることはできません。
Source Code
(In src.zip) Java programming language source files for all classes that make up the Java core API (that is, sources files for the java., javax. and some org.* packages, but not for com.sun.* packages). This source code is provided for informational purposes only, to help developers learn and use the Java programming language. These files do not include platform-specific implementation code and cannot be used to rebuild the class libraries. To extract these file, use any common zip utility. Or, you may use the Jar utility in the JDK's bin/ directory:
jar xvf src.zip
ちなみにJDK 10のREADMEからはこの段落は無くなっていました。
有償サポート契約
Q. Javaの有償サポート・サービスについて教えて下さい。
このFAQを読む限り個人での契約はできないようです。
Oracle Java SE Subscriptions
2018年6月21日に発表がありました。
従来の”Java SE Advanced”、”Java SE Advanced Desktop”、”Java SE Suite”はJava SE Subscriptionsに移行し、商用のJava SEライセンス、サポートを希望する顧客は”Java SE Subscription”か”Java SE Desktop Subscription”を選択できます。
補足
JDK API Diff Report Generator
AdoptOpenJDK/jdk-api-diff - GitHub
Adopt OpenJDKが公開している指定する2つの異なるJDKのAPI差分をレポートしてくれるツールです。
OpenJDK 9とOpenJDK 10やOracle JDK 9とOpenJDK 9といった指定ができるそうです。
ローカルにチェックアウトしてREADMEの説明の通り実行してみました。
比較対象はOpenJDK 9.0.4とOpenJDK 10.0.1です。
処理が終了するとtargetディレクトリにjdk-api-diff.htmlというレポートが生成されます。
Support Java 11
Author And Source
この問題について(OpenJDKのキャッチアップのメモ), 我々は、より多くの情報をここで見つけました https://qiita.com/rubytomato@github/items/af7efa33383879e542e1著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .