

Oracle JDK 8 の無償アップデート終了後の選択肢は何があるのか
こんにちは、ソリューション開発部の桑原です。
先日、日本 GlassFish ユーザー会さん企画の
に参加させていただきましたので、参加レポートを書いていきます。
前提:JDKサポートについて
JDK 11のリリースが間近に迫り、
- Oracle JDKのJDK 11以降の商用環境においては有償ライセンスが必要となる
- Oracle社から提供されるOpenJDKビルドは半年ごとのリリースかつ無償更新期間が重複しない
- Oracle JDK 8の商用環境での無償更新が2019/01に終了する
といった状況により、いままで(当たり前のように)無償で使用できていたJavaに関してどういった選択肢があるのかについて、関心が高まっております。
特に商用環境でOracle JDK 8を使用しつつ、JDKを11以降にアップデートしていこうと思った場合、
- Oracle JDK 11を有償サポートとともに選択する
- Oracle社により提供されるOpenJDKビルドを選択する
- Oracle社以外のJDKベンダから提供されるOpenJDKビルドを選択する
などといった選択肢があります。
以降は、お話を聞けたAzul Systems社、IBM社を主な対象としてこれからのJDKサポートについてまとめていきます。
Azul Systems
Azul Systems社からは、Zing, Zulu Enterprise, Zulu Embeddedの紹介がありました。
Zulu (Zulu Enterprise)
Zuluは、Azul Systems社によって提供されるOpenJDKのビルドであり、
- OSSとして無償利用が可能
- Java SE 6~10 認定
- OpenJDK および OpenJDK HotSpotと同等のパフォーマンスを持っている
- もし仮にZuluがおかしくなるとAzureへも影響が出るほどの影響力がある
といった性質をもっており上述の通り無償利用が可能ですが、LTSやMTSとしてセキュリティアップデートやバグフィックスが必要ならZulu Enterpriseでサポート契約が選択できます。
JDK 8 であれば2026年までサポート予定とのことです。
Zing
Zingはかなり高性能なJavaランタイムなようですね。8TBのヒープサイズを扱えるということで、想像を遥かに超えます。
実はJJUGの8月ナイトセミナーでもSimon Ritterさんが色々お話いただいていたのですが、私は英語力 + 内容の深さで完全に振り落とされました。
興味のある方はこちらを。
IBM
IBM社からはOpenJ9 VMとIBM Javaの紹介がありました。
当日の資料はこちらでした。
OpenJ9
元々IBM社が独自に開発してきたJVMとしてIBM J9 VMがありました。
その中から実行環境の非Java部分をEclipse OMR Projectで公開し、OMR上で実装されたJ9 VMをOSS公開されたものがOpenJ9です。つまりOpenJ9とはJVMです。
また、OpenJ9はOracle社のバグフィックスと同期が取られており、例えば2018/07のビルドはOracle社のパッチ全てが取り込まれているとのことです。
OpenJDK + OpenJ9
OpenJDKのClass Libraryと、JVMにOpenJ9の組み合わせを選択されたビルドが提供されております。
OSSとして無償利用することができ、障害サポート(製品障害に対する調査や新規障害に対する個別Fix)が必要であればIBM社によるサポートを受けられることができます。
JDK 8であれば2022年までサポート予定とのことです。(当日の資料の14P参照)
AdoptOpenJDK
AdoptOpenJDKはJUGメンバー、Java開発者、Java開発ベンダーのコミュニティです。OpenJDKのビルドを提供しており、IBM社もAdoptOpenJDKスポンサーの一員です。
そしてAdoptOpenJDKから、OpenJDK + OpenJ9ビルドが提供されております。
また、AdoptOpenJDKはOpenJ9だけでなく、HotSpotとOpenJDKのClass Libraryの組み合わせのビルドも提供しています。
IBM SDK for Java Technology
OpenJDK + OpenJ9 をベースに、IBM社独自機能を追加したビルドです。
単独での入手は現在はDocker環境のみで、製品の一部としてサポートが提供されております。
Red Hat
Red Hat社はご都合つかず来れなかったらしいのですが、ブログを公開していただいているのでご紹介させていただきます。
JDK 11のリリースを控えて
イベントの最後に会場スポンサーのマイクロソフト社 寺田さんより、JDK 11のリリースを控えて、今までは大体三年に一度だったJavaのリリースが何故半年に一度になったのかという背景として、
- 今のIT業界にとっての三年はとても長い期間
- 三年に一度しか新しい機能を入れられないのは遅すぎる
- 当時価値のある機能だとしても三年後には価値が変わっている
- 時代に合わせるためにもっと早いリリースサイクルが必要になった
- Javaの開発・提供自体がアジャイル的になっている
- JDK 9で入ったProject JigsawによるModule Systemで、Java自体がモノリシックからの脱却
といったお話を伺うことができました。
リリースサイクルが早まることで、もちろん使用する側は大変なことがあると思いますが、Javaが時代に追従していくためには必然であると考えられます。
最後に
Javaチャンピオンによる昨今のJDKの動きや今後の選択肢がまとめられた資料:Java Is Still Freeが公開されました。本記事で扱えていない選択肢が記載されております。
更に、商用サポートが必要な場合の理由や、OSSを使用する際の心構えについても記載があります。
Javaを使用して開発している技術者であれば、Oracle社がJavaの発展に巨額な投資をしていること、各ベンダー含めたコミュニティがOpenJDKへの貢献をしていることを正しく知っておいたほうが良いと思います。
Java Is Still Freeにはその内情も記載されております。是非読んでみてください。
Javaの無償版はなくなるわけではありません。
半年ごとの機能リリースにより、最新の機能を使用したければ最新のOpenJDKを使用、旧バージョンを使用し続けたければサポート契約を結ぶ。
といった具合に選択の幅が増えた。と捉えることもできると考えております。
本記事が今後のJavaの選択肢について役立てば幸いです。