JDKのメンテナンス状況、バイナリの提供状況に関する覚え書き。
OpenJDKの開発サイクル
OpenJDKプロジェクトは、半年に一回JDKのメジャーバージョンをリリースしている。2021年11月時点での最新版としてJDK 17がリリースされている。Linux、Windows、macOS用のバイナリは、Oracleのサイトから入手可能。
OracleはOpenJDKのバイナリを最新のメジャーバージョンのみ提供する。つまり、JDK 17がリリースされた以降はJDK 16以前のバイナリをOracleは提供しない。アーカイブとして過去のリリースへのリンクは貼られているが、アップデートされていない旨の記載が有る。
一方で過去のJDKはそれぞれ別のリポジトリにコピーされ、それぞれソースコードのメンテナンスが続けられている。
JDK8, 11, 13, 14, 15, 16のリポジトリはメンテナンスが続いていて、最新のJDKに反映された修正のバックポートされて取り込まれている。
例えば、JDK15のリポジトリのコミットログを見ると随時アップデートされていることが分かる。
JDK 15u - JDK 15u - OpenJDK Wiki
GitHub - openjdk/jdk15u: https://wiki.openjdk.java.net/display/JDKUpdates/JDK+15u
また、その成果が一定間隔でソースコード一式をGeneral-Availability Releasesとして提供している。
Tags · openjdk/jdk15u · GitHub
しかし、あくまでソースコードのみのリリースであるため、バイナリは提供されておらず、使いたい場合は自分でビルドする必要がある。
Oracle以外のベンダはOracleのJDKのサポートポリシーに合わせてOpenJDK8, 11, 17のみを長期サポート(LTS)対象としているが、ベンダがその気になればこれらのソースコードを元に、他のJDKの長期サポートを提供することも可能????
HomebrewでインストールされるOpenJDKは独自ビルド
macOSのパッケージ管理ツールであるHomebrewでopenJDKをインストールすると、最新のJDKがソースコードから独自にビルドされてインストールされる。2021年11月現在は最新バージョンのJDK 17がインストールされるが、JDKがメジャーバージョンアップすると差し替えられる。
homebrew-core/openjdk.rb at master · Homebrew/homebrew-core · GitHub
macOSのHomebrewには最新のJDK 17以外にもOpenJDK 11をインストールするFormulaが用意されているが、それらもJDK Update Releasesで提供されるソースコードを元にインストール時に独自にビルドされている(OpenJDK 8だけなぜかリンク先がGitHubではなく、Open Source Community Infrastructureになっている)。
homebrew-core/openjdk@11.rb at master · Homebrew/homebrew-core · GitHub
当然だが、独自にビルドされたバイナリなので、サポートなどは提供されない。自分でビルドして、分からなければ知っている人に聞くか、自分で調べるしかない。
なお、JDKをビルドするためには他のバージョンのJDKがインストールされている必要があるためフリーで入手可能なバイナリがダウンロードされるようになっているのが興味深い。
この記事を読むと、以前はOracleが提供するOpenJDKバイナリへのリンクが貼られていた模様。
OpenJDK 11 を Homebrew で macOS にインストールする - Qiita
バイナリの入手方法について
次回に続く...