Java
oracle
OpenJDK
JDK

Javaの有償化問題、Java8のサポート終了問題について、2019年1月以降どうしたらいいか

この記事は3分程度で読めます。

ふわっとした情報が多いため、調べたことを備忘として残します。

(調べても結局ふわっとした感じはぬぐえていない( ノД`))

※2018/7/3現在の情報です。


何がまずい?

JDK8(java8)の商用サポート期限が2019年1月で終了する(例外はあるが、後述)。以降、致命的な脆弱性があった場合にパッチが提供されないため、2019年1月までにはJDKのバージョンを上げないとセキュリティを担保できない。


OracleJDK(JavaJDK)を8より新しいバージョンにアップデートすればいいか?

OracleJDKは2018年9月リリース予定のJava11をもって、ライセンス契約者のみの配布となるため、有償サポート契約が必要になる。

LTS版(長期サポート版、現在はJDK8がこれにあたる。次が11)のバージョンアップは3年毎のサイクルで行う予定。

短期サポート版(JDK9,10,12,13等)のバージョンアップは半年サイクルで行う。

有償サポートのプランや価格については、月額モデル等の新たなプランが米オラクルでは発表されたため、近いうちに日本オラクルより、何かしらアナウンスがあると思われる。

有償サポートを受けた場合の特典として、JDK8のサポートが最大2025年まで延長されるという特典がある。


無償のJavaは無いの?

存在する。が、OracleJDKから他のJDKへの切り替えは、Javaをバージョンアップする様なイメージになるため

切り替えを行う場合は、動作保証のためのテストフェーズが発生すると思って下さい。


OpenJDK

OSS開発のJDK。内部的な違いはあるが、Oracleと連携をとって開発されており、機能的な差異は無いとされている。

バージョンアップは半年ペースで、最新版のみをサポート対象とする予定。

LTS版をリリースするという話が出ていたが、公式発表は無く、あまり期待できない。

RedHat社はOSに内包するOpenJDK8のサポートを独自に2020年10月まで行うとのこと。


AdoptOpenJDK

OpenJDKのビルドを提供するプロジェクト。IBM、マイクロソフト等がバックアップしており、OpenJDKの提供しているJDKよりも多くのプラットフォームに対応している。(AIX等)

こちらは半年ごとにアップデートする通常のバージョンに加え、4年のサポートを行うLTS版を提供する予定である。


現在考えられる選択肢は…

・Oracle社の有償サポートを受けJDK8を使い続ける。

・Oracle社の有償サポートを受け、LTS版のJDK11へ切り替えを行う。3~4年ごとにバージョンアップを行う

・OpenJDKへの切り替えを行い、半年ごとにバージョンアップを行う

・OpenJDKへの切り替えを行い、2020年10月まで様子を見る。※OSがRedHatの場合のみ

・AdoptOpenJDKへの切り替えを行い、3~4年ごとにバージョンアップを行う


総評

無償で使う場合、AdoptOpenJDKが現実的でしょうか。JDK8の終焉まであと半年と迫っていますがあまり情報がありませんね。

そろそろ何か発表がありそうですが、発表があれば追記したいと思います。