[Java] 今(2020年)から始めるJava開発で選択できるプラットフォーム
Java界隈のウワサ話は聞いていたけれど、いざ使おうとしたらどれを使ったらいいかわからない。
サポート期間が長くて、あまりお金がかからないのがいいな。
そんなひと(自分 )がのための情報まとめです。
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がよいと思われます。
リンク集
- Oracle
- RedHat
- AdoptOpenJDK
- Amazon
- Microsoft
- Azul Systems
- SAP
- 最適なOpenJDKディストリビューションの選び方
ところで
いまどきのJavaアプリケーションのデプロイは、どうするのが正解なんでしょうか?
- 昔ながらのjarを配布
- dockerイメージを作成して配布
- GraalVMでネイティブ化して配布
使う側からしたら、3.が一番手間なくてよさそうですが、実際にやっているひといるのかな。