Java界隈のウワサ話は聞いていたけれど、いざ使おうとしたらどれを使ったらいいかわからない。
サポート期間が長くて、あまりお金がかからないのがいいな。
そんなひと(自分 :smiley: :point_left:)がのための情報まとめです。

JDK一覧

受託開発業者が、客先へ納品するプロダクトの実行環境として使用できそうなJavaをまとめてみました。

名前 Javaバージョン サポートOS サポート期限 必要なもの ライセンス
Oracle JRE (Oracle Java SE) 8 Windows, Linux, macOS, Solaris 2025年3月 サブスクリプションを購入 OTN Agreement for Oracle Java SE
Oracle Java SE 11 Windows, Linux, macOS 2026年9月 サブスクリプションを購入 OTN Agreement for Oracle Java SE
Red Hat OpenJDK (Windows用) 11 Windows 2024年10月 サブスクリプションを購入 GPLv2 with CPE
AdoptOpenJDK 8 Windows, Linux, macOS, AIX, Solaris 2023年9月 (なし) GPLv2 with CPE
AdoptOpenJDK 11 Windows, Linux, macOS, AIX 2022年9月 (なし) GPLv2 with CPE
Amazon Corretto 8 Windows, Linux, macOS 2023年6月 (なし) GPLv2 with CPE
Amazon Corretto 11 Windows, Linux, macOS 2024年8月 (なし)  GPLv2 with CPE
Azul Zulu Enterprise 8 Windows, Linux, macOS 2026年3月 サブスクリプションを購入 GPLv2 with CPE
Azul Zulu Enterprise 11 Windows, Linux, macOS 2027年9月 サブスクリプションを購入 GPLv2 with CPE
Azul Zulu Community 11 Windows, Linux, macOS, Solaris 2027年9月 (なし) GPLv2 with CPE
SapMachine 11 Windows, Linux, macOS 2022年9月 (なし) GPLv2 with CPE

Oracle OpenJDK 13(サポート期限2020年3月)とOracle OpenJDK 14(サポート期限2020年9月)は省きました。

Linuxディストリビューション付属のパッケージ

Linuxディストリビューションに含まれているOpenJDKパッケージです。
たいていはこちらを利用することになると思います。

ディストリビューションとバージョン Javaバージョン サポート期限
RHEL 6, 7, 8 8 2023年6月
RHEL 7, 8 11 2024年10月
CentOS 6, 7, 8 8 RHELに準ずる?
CentOS 7, 8 11 RHELに準ずる?

クラウド環境で使用できるJDK

クラウドベンダ サービス OS Javaバージョン サポート期限
Amazon Web Services EC2 Amazon Linux 1 8 2020年6月(?)
Amazon Web Services EC2 Amazon Linux 2 8 2023年4月(?)
Amazon Web Services EC2 Amazon Linux 2 11 2023年4月(?)
Microsoft Azure VM Windows, Linux 7 2023年7月
Microsoft Azure VM Windows, Linux 8 2025年3月
Microsoft Azure VM Windows, Linux 11 2026年9月

結局どれ使えばいい?

バージョンは?

今すぐ動かすなら11一択です。

2021年9月以降に動かすなら、次のLTSである17へ向けて備えると良いと思われます。

JDKは?

条件に応じての選択になるかと思われます。

Oracleにする?Oracle以外にする?

まずOracleにするか、Oracle以外にするかを選びます。
フェラーリを買えるようなお金持ちはOracleを選ぶんだろうなぁ(ひがみ)。

Oracle以外の場合

クラウドの場合は、環境についてくるJavaを使うのがよいと思われます。

オンプレのLinuxの場合は、OSとサポートを合わせられますし、付属のパッケージを使うのが簡単かと思われます。

オンプレのWindowsで有償サポートが欲しい場合は、Red HatかZuluがよいと思われます。

リンク集

ところで

いまどきのJavaアプリケーションのデプロイは、どうするのが正解なんでしょうか?

  1. 昔ながらのjarを配布
  2. dockerイメージを作成して配布
  3. GraalVMでネイティブ化して配布

使う側からしたら、3.が一番手間なくてよさそうですが、実際にやっているひといるのかな。