Java
OpenJDK
Java11

Java11時代のJDKを考察してみた話


はじめに

WebサービスのJava11対応をしてみた話Java(JDK) に関する部分です。

色々な方が記事にしていますが、本記事はあくまで私がOpenJDK11を選択する際の備忘です。


JDK11の選択肢

少なくとも今のところ以下のJDKの選択肢があります。

- OracleJDK

- OpenJDK

- Redhat OpenJDK

- AdoptOpenJDK

- ZuleOpenJDK

- Amazon Corretto


OracleJDK

言わずとしれたOracle社の公式JDK。安心・安全という点では他JDKを一歩上回ります。

Java11以降は、Oracle社と契約すると手に入ります。(開発用にはダウンロード提供されています)

契約&代金を支払えば無期限の永遠サポートを受けることもできます。

Oracle Java SE サポート・ロードマップ

私のいるプロジェクトでは、比較的高額(3年サポート以降にはプレミアム価格上乗せ)代金を支払い続けることは難しいとの判断でNGになりました。


OpenJDK

Oracle社含むJava開発コミュニティで開発を実施しているJDK。他のJDK実装の基になっているようです。

サポートライフサイクルについて6ヶ月(次期JDKリリースまで)と短いのがネック。

※一時長期サポートをするとの噂も流れましたが以降音沙汰がないですね

私のいるプロジェクトでは、Oracle社の公式JDKに近いという安心感からアップデートコストを支払ってもよいのでOpenJDKを選択するという結果になりました。


Redhat OpenJDK

RedHat社がメンテナンスするJDK。RedHatLinux上であれば長期サポートが提供されるようです。

RedHatLinuxのライセンス購入が必要なので、導入ハードルはOracleJDKに近いかつOSの制約がある分難しいところです。

私のいるプロジェクトでは、RedHatLinuxを利用していないため導入NGとなりました。


AdoptOpenJDK

IBM社含む数社、数コミュニティで開発を実施しているJDK。現状のコードベースはOpenJDKでビルド提供のようです。

実際の該当バージョンのサポートライフサイクル終了後にどのように運営されていくかが気になるところです。

私のいるプロジェクトでは、実績面から不安視され導入NGとなりました。


ZuleOpenJDK

Azure Systems社がメンテナンスするJDK。無償の長期サポートが提供されるようです。

Microsoft社のAzureにてサポートが提供すると話題になりました。

実際の該当バージョンのサポートライフサイクル終了後にどのように運営されていくかが気になるところです。

私のいるプロジェクトでは、Azureを利用していないこととAdoptOpenJDKと同様に実績面から不安視され導入NGとなりました。


Amazon Corretto

Amazon社(Amazon Web Services)メンテナンスするJDK。無償の長期サポートが提供されるようです。

Amazon Web Servicesに現在いるJava開発者のJames Gosling氏のコメントや既にAmazon Web Services上のJDKとして利用されているとのことから、大きな話題になりましたね。

私のいるプロジェクトでは、現状プレビュー版であることから導入NGとなりました。

正式版になれば将来的には導入検討対象になりそうな予感です。


感想

私のいるプロジェクトでは、決定権をもつ人間が比較的安定志向ということもあり、アップデートコストを支払ってもよいのでOpenJDKを選択するという結果になりましたが、2018年春頃に話題になり始めた頃と比べても選択肢も増えています。

条件次第では、過去のJDKと同様に無償の長期サポートを受けつつ利用することが可能なものも多く、悩んでいる方も多いのではないかなと思います。

Java8のサポートが終了する2019年の年明け、またはOpenJDK11のサポートが終了する2019年3月頃に再度話題があがりそうですが、皆様の選択の参考になれば幸いです。