orangeitems’s diary

クラウドではたらくエンジニアの日々の感想です。

2018年10月現在のJavaサポート状況をまとめる

f:id:orangeitems:20180322172427j:plain

 

現在の状況

2018年2月8日に、Java SEのサポート状況に激震が走っていることを記事にしました。

2018年にJavaを利用している人は全員理解すべきことを説明してみる(追記あり) - orangeitems’s diary

記事を出した段階から変化したことは、以下の3点です。

1)Oracleより、2018/6/21にJava SE Subscriptionというモデルが発表され、金額の支払い方がシンプルになったこと。また、この中でJava SE 8の2025年までのサポートが明言されていること。

2)RedHatが、OpenJDK8のサポートは予定通りに終了し、その後はOpenJDK11を長期サポートする旨を発表したこと

3)OpenJDKのLTSサポートの実現はまだ明言されていない。しかし、OracleはセキュリティーパッチはLTSと同様の物を取り込む支援をすると言っている(明言はしていない)。

4)Oracle Java 11より、ライセンスの内容が変更となり、非商用・開発用途でしかりようができなくなりました。

 

[1] OpenJDKのLTS版の情報

OpenJDK11についてはLTS版(long term support)としてリリースされるのではという噂がありましたが、どこからも確たる情報はありません。もはや言葉遊びですが、Oracle JDK 11がリリースされるときにはOpenJDK 11も同時にリリースされます。Oracle JDK 11はこのときは有償サポートがないと手に入りません。有償サポートのなかで更新版が出続けるなら、OpenJDK11も更新されるんじゃないか?、というのは期待であって、これを裏付ける情報は現時点ではありません。

ただ、わざわざOracle JDKとして商業版のみにLTSを提供すると表明しながら、一方で全く同じものをOpenJDKとして無償ダウンロードできるというのは考えにくいのではないかと個人的には思います。11がリリースされるのは2018年9月です。この時点までは何らかの見解がOpenJDKコミュニティーから発表されると思います。

OracleからOpenJDKコミュニティーをサポートし、セキュリティーパッチだけはOracle JDKから取り込めるようにしたいという発言がありました。

→(最新情報)現時点でどうなるかわからない。OpenJDKの見解を待つしかない。不安なら、Oracle JDK SE Subscriptionを検討するか、RedhatがリリースしているOpenJDKのサポートを受ける。

 

[2] Red Hat社の情報

Red Hat社が、RedHat Linux Enterprize LinuxにバンドルされているOpenJDKは、OSをサポートしている限りサポートしてくれるだろうという目論見の方もいらっしゃると思います。

Red Hat社のOpenJDKのサポートポリシーは以下にあります。

OpenJDK ライフサイクルおよびサポートポリシー - Red Hat Customer Portal

この通り、2020年10月までOpenJDK8を使い続けることができます。それ以降は、OpenJDK11を使うようにとの内容です。

なお、Red Hat社のアプリケーションサーバーであるJBoss EAPにおいては、Java 9/10はどうなるかという見解が出ています。

Support for Java 9 / Java 10 with JBoss EAP. - Red Hat Customer Portal

Java 9については、2018/3にサポートが切れるのでもうサポートしない書いてあります。

OpenJDK 11についての長期サポート提供については、2018年6月4日に発表がありました。

Red Hat OpenJDK 11 Advice - Red Hat Customer Portal

→(最新情報)2020年10月までに、OpenJDK8から、OpenJDK11へ乗せ換えること。Redhatの長期サポートが得られる。

 

[3] JDK8からJDK11への乗り換え期間がタイトすぎる

おそらく海外でも同じ状況だろうと思いまして、開発者の掲示板をのぞいてみたら非常に興味深い議論がありました。

JDK 10: General Availability | Hacker News

> Java8 won't be supported after January 2019, Java11 (LTS) will be release in September this year.
Are they dropping support for the latest LTS just four month after releasing a new LTS? That sounds a bit harsh. 

つまり、Java8(LTS)は2019年1月にサポートを切る、新しいLTSであるJava11は2018年9月リリース。ということは、「4か月しかサポートが重複している期間がない。これはひどいね。」と言っています。

確かに、世の中でたくさん動いているJDK8のアプリがあるとして、JDK9に乗せ換える期間は4カ月しか用意されていないということになります。

合わせてこれで気が付いたのですが、Java 10のリリースは2018/3/20でした。

Oracle、「Java SE 10」を公開。6カ月サイクルでリリースされる最初のバージョン - 窓の杜

そして、Java 9のサポートは2018/3/31で切れました。

ということは、11日間しかJava 9 -> Java 10のサポート重複期間はないですね。Java 9や10など、非LTSバージョンでアプリケーションを構築してしまうと、2週間弱で次のジョンに乗せ換えなければいけないということを示しています。

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

もし有償のOracle JDKのPremir Supportに入れれば、Java 8は2022年3月まで延命できますので、これをOracleは狙っているのかもしれません。

また、2018/6/21に発表されたJava SE Subscriptionにおいては、2025年までのサポートを宣言しています。

 →(最新情報)乗せ換えの期間が限られ過ぎている。非LTSだと11日間。LTSでも4カ月間。現実的には、Java SE Subscriptionに入り、2025年まで延命するという線が現実的となってきた。

 

[4] Oracle Java 11からライセンスの内容が変更に

下記にまとめてあります。

(重要)Oracle Java 11から、ライセンス契約の内容がガラリと変わっています | 無償利用は非商用・開発用途のみ - orangeitems’s diary

サポート期間うんぬんより、こちらの方がおおごとだと思います。

Oracle Java 11は、もう完全に商用ソフトウェアであり、ダウンロードできるものは開発限定に過ぎないものと言うことを理解する必要があります。

 

まとめ

OpenJDKを選んでもLTSがどうなるか不明であること。Red Hat社はOpenJDK11に一本化したこと。また、乗せ換える時間が非常に限られること、が分かっていただけたのではないかと思います。また、2018年9月26日にリリースされたOracle Java 11は完全に商用ソフトウェアです。これまでのように気軽に無償で使えるものではありません。

OpenJDK11のLTS化マダー?、という声はマダー↓としかいいようがありません。 

 

追記1

もしかしたら一件落着となる可能性あり?

www.orangeitems.com

 

追記2

Java Day Tokyo 2018では新しい情報無し。

www.publickey1.jp

 

追記3

大きいニュースでした。

www.orangeitems.com

 

追記4

節目の2018年9月を踏まえて記事を追加しています。

www.orangeitems.com

 

追記5

Java is still Freeというドキュメントに対する意見です。

www.orangeitems.com

 

追記6

Amazonのやることには、信用するしないの問題なのが技術者としては悩ましいところです。

www.orangeitems.com

 

 

スッキリわかるJava入門 第2版 スッキリわかるシリーズ Kindle版