71
57

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2018-07-03

この記事は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の終焉まであと半年と迫っていますがあまり情報がありませんね。
そろそろ何か発表がありそうですが、発表があれば追記したいと思います。

71
57
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
71
57

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?