Javaで実装されたシステムのバージョンアップ戦略を検討するため、今後のJavaのリリースサイクルとサポートに関する情報を整理した。なお、本記事では無償利用が可能なJDKに関する情報を中心に整理している。
これからのJavaリリースサイクルとサポート
以下の2点がこれまでからの大きな変更点である。
(1) Java 9以降はメジャーバージョンアップが6ヵ月ごとになった(参考)
バージョン | リリース |
---|---|
10 | 2018年3月 |
11 (LTS) | 2018年9月 |
12 | 2019年3月(予定) |
(2) OracleのOpen JDKのサポートがリリースから6ヵ月間になった
ただし、3年ごとのLTSバージョンは有償で5~8年のサポート(これをOracle JDKと呼ぶ)を受けられる。
(2021/9/18 追記) Java 17から、次のLTSリリースの1年後まで無償サポートが提供されることとなった。(参考)
無償利用できるOpen JDK
OracleがOpen JDKのサポート期間を短縮したことで、他のベンダーがOpen JDKの長期サポートを発表している。無償で利用できるものは以下の通り。
無償利用可能なOpenJDKとサポート期限
JDK | Java 8 (LTS) | Java 11 (LTS) | Java 17 (LTS) |
---|---|---|---|
Oracle JDK (Support) | (有償のみ) | (有償のみ) | 2024年9月まで ※1 |
Eclipse Adoptium (Support) ※2 | 少なくとも2026年5月まで | 少なくとも2024年10月まで | TBD |
Amazon Coretto (Support) | 少なくとも2026年6月まで | 少なくとも2027年9月まで | TBD |
Microsoft Build of OpenJDK (Support) | (提供なし) | 少なくとも2024年10月まで | 少なくとも2027年9月まで (リリース日は未定) |
SapMachine (Support) | (提供なし) | 2023年9月まで | 2026年9月まで |
BellSoft Liberica JDK (Support) | 2031年3月まで | 2027年5月まで | 2030年5月まで |
※1 次のLTSリリースがOracle JDK 21 (2023年9月) とされているため、そこから1年間として記載。
※2 AdoptOpenJDKから2021年7月に移行された。
その他、特定の条件で無償利用できるOpenJDKには、RedHat OpenJDK(RHELのサポートに含まれる)と Zulu OpenJDK(Microsoft Azure利用者は無償)がある。
アップデート戦略
これまでOracle JDKを利用していた場合は、JDK 17以降のサポート期限も鑑みて有償ライセンスを購入を判断することになる。元々何らかのOpen JDKビルドを利用していた場合は、この機会にサポート期限の長いものに乗り換えるのもあり。AWS、Azure、OracleなどのIaaSを使っている場合は、おそらくそれぞれのベンダのOpenJDKビルドを簡単に導入(更新)する手段が提供されていくのでは、といった感じか。