2019年1月に「Oracle Javaの無償アップデートが終了」ということで話題になっているタイトルの件、今更ですが簡単に整理しました。
ざっくりいうと
Oracle JDK 8の無償サポートが終了しました。
本記事は、この文章の意味が ? な方向けの記事です。
JDKとは?
まず初めにJDKから説明します。
このあたり、似た用語が多くややこしいのですが以下の画像が分かりやすいです。
JDK vs JRE vs JVM in Java - What's the Difference ? - Simple Snippets より抜粋
まず初めにJavaというものがあります。
Javaはプログラミング言語という観点だけでなく、それを実行するプラットフォーム全体を指す意味が広い用語です。そんなJavaは企業のアプリケーションの土台になっていたりと、かなり広く利用されています。
そして、図にあるJREとはJava Runtime Environmentの略で、システム上でJavaアプリケーションを動かせるようにするプログラムです。
このJREという実行環境に、開発環境もセットしたものをJava Development Kit(JDK)と呼びます。
そんなJDK、実は色んな団体が開発しており、その中でも最大手と言えるのがOracle社です。
つまり、Oracle JDK 8の無償サポートが終了というのは、OralceJDKのバージョン8を採用している企業からすると頭が痛い問題というわけです。
次の疑問として、無償サポートが終了すると何が困るのでしょうか?
無償サポート終了の意味
どんな製品もそうですが、新しく発見された不具合への対応のために定期的にアップデートというのが行われます。このパッチ提供が無くなります。
ただ、Oracle社は個人利用に関しては2020年12月まで提供するようです。ここの違い、どうやってOracle社は判断しているのでしょうか。
商用ユーザー: 商用ユーザーは、オラクルカスタマーではなく、第三者から供給または自ら開発した Java アプリケーションと共に Java SE を無償で ビジネス・商用・製品目的で利用する個人または団体です。
個人ユーザー: 個人ユーザーは、個人のデスクトップパソコンやノートパソコンで Java SE を無償で利用する個人です。(Oracle社ページより抜粋)
ではどうすれば良い?
大きな変更なしに行うには主に以下の三択です。
Oracle JDK8を使い続ける
分かりやすいですね。アップデートしなくて良いのであれば、問題なく使えます。
有償サポートプランに切り替える
Oracle JDK8は、有償にすれば2025年までサポートを受けれるようです。
他のプロバイダのJava SE 8 / OpenJDK 8を使う
例えば、IBMやSAPは独自のJDKを発表しています。また、OSSのOpenJDKというものもあります。
それぞれのライセンス体系が気になる方はぜひググってみてください。IBMJDKであれば2025年までサポートなど。
与太話
バージョンアップしちゃえばいいんじゃんと思いがちですよね。
実はJava9とJava8の間でProject Jigsaw*1という機能が実装されました。
これがJava 8から、Java 9かそれ以後のバージョンへの移行の障壁になっているようです。
以上、Oracle JDK8 のサポート問題に関するメモでした。
*1:Javaにモジュールという概念が導入された。使用できなくなったAPIもあり