PR
4/1朝まで
どなたでも有料記事が読み放題「無料開放デー」開催中!

2018年9月、Java SE 11がリリースされる。このバージョンからOracle JDKは有償になる。無償で使い続けたいユーザーが取れる対策は3つだ。

 Javaユーザーに決断の時が迫っている。これまで米オラクル(Oracle)はJava開発実行環境「Java SE」を無償提供してきた。それが、2018年9月にリリース予定のJava SE 11から有償化される。オラクルに料金を支払いたくないユーザー企業は、オープンソースのJava SE「OpenJDK」を利用することになる。

図1●Java SEのリリースサイク
図1●Java SEのリリースサイク
[画像のクリックで拡大表示]

 ところが、OpenJDKは半年ごとにバージョンアップされる。バージョンアップ後は、旧バージョンのセキュリティパッチは配布されない。ユーザー数の多いJava SE 8は2019年1月にサポートが切れる。このときまでに対策を考えなければならない。

 同じJava SEのバージョンを使い続けたいユーザー企業は、3つの選択肢から選ばなければならない。それが(1)バージョンアップに追従できる開発体制を整える、(2)OpenJDK以外のJDKを使う、(3)セキュリティを担保した上でバージョンアップを保留する、の3つだ。

追従には高い技術力が必要

 (1)は、半年ごとのOpenJDKのバージョンアップに合わせて、Javaで作られたシステムをバージョンアップする方法だ。ただし、バージョンアップに追従するには、「高い技術力が必要」(日本Javaユーザーグループの谷本心氏)という。Javaのバージョンアップだけでなく、周辺のフレームワークやライブラリと整合性を取る作業が発生するからだ。

 そこで現実的な解決策が(2)のOpenJDK 以外のJDK を使う方法だ。Java開発実行環境はOracle JDK やOpenJDK だけではない。AdoptOpenJDKコミュニティが無償提供するAdoptOpenJDKもある。AdoptOpenJDK は、「機能や性能もOpenJDKと差はほとんどない」(谷本氏)。

 AdoptOpenJDKは、サポート期間が長いLTS(Long Term Support)のバージョンを用意している。AdoptOpenJDK版のJava SE 11のサポート終了は2022年9月だ(図1)。OpenJDKのサポート終了は2019年3月のため、AdoptOpenJDK のほうが3年半も長くJava SE 11を使える。AdoptOpenJDK では、3年ごとにLTSのバージョンがリリースされ、4年間サポートされる。次のLTSバージョンのJava SE 17(JavaSE 11から3年間で6バージョン上がる)がリリースされるのは2021年9月。この時点で、Java SE 11のサポート期間は1年も残っている。移行期間が1年あるのはメリットだ。

 (3)は、バージョンアップを諦める方法だ。Javaのセキュリティ問題は、クライアント側で発生することが多い。谷本氏は「バックエンドでJavaを動かすのであれば、Javaそのもの脆弱性よりもTomcatなどのWebアプリケーションサーバーの脆弱性の方が問題になる」と話す。サーバー自体への対策や通信制御などでセキュリティを担保した上でバージョンアップをしないのは「対策としては悪手だが選択肢になる」(谷本氏)という。