Oracle JDKの商用サポート終了? フリーのオープンソースOpenJDKとは

こんにちは。都築です。
 
Oracle JDK8の商用サポートが2019年1月に終了し、OracleJDK11などで長期のサポートを必要とする場合、有償サポート契約が必要になります。
 
それを受け、今後はOracle JDKではなくOpenJDKを利用することも多いのではないかと思います。
 
そこでOpenJDKについて調べてみました。

OpenJDKとは

Wikipediaによると下記と記載されています。

OpenJDK (Open Java Development Kit) は、プログラミング言語Javaのフリーかつオープンソースの実装である。
2006年、サン・マイクロシステムズが始めたもので、GPLリンク例外つきの GNU General Public License (GNU GPL) でライセンスされている。
リンク例外つきとしたのは、Javaクラスライブラリのライブラリとしての使用をGPLライセンスの適用外とするためである。OpenJDKはJava SE 7以降の公式リファレンス実装とされている。

出典:Wikipedia

難しい言葉で記載されていますが、Openとつくとおり、ソースコードを商用、非商用の目的を問わず利用、修正、頒布することを許されているオープンソースで実装されたJDKです。
 
OracleJDKと同様にOpenJDK8、OpenJDK9……とJavaのバージョンに合わせて別々のOpenJDKプロジェクトが存在します。

OracleJDKとOpenJDKの違い

内部的な違いはありますが、どちらも基本的な仕様に大きな差異はありません。ただしOracle JDKではOpenJDKに加えオラクルが一部の機能を追加し、ビルド・テストしたものとなっています。
 
私がOpenJDKに切り替えた時は、OpenJDKにはないJavaFXを利用したクラスがあり、コンパイルエラーが発生するなどの問題が発生しました。
 
また、直接は利用していないがOpenJDKにない機能を利用したJavaライブラリを利用する場合や、コンパイルエラーが発生しないが挙動が違うなどの問題もありますので、切り替える場合は注意が必要です。

OpenJDKにない機能

前述したとおり、OpenJDKではOracle JDKに比べ無い機能がいくつかあります。たとえばJDK8時点では下記の機能などがOpenJDKにはありませんので、これらを利用している場合は改修が必要となります。
 

  • Applets/JRE Browser plug-in
  • Java Web Start
  • JavaFX
  • VisualVM
  • Derby DB
  • Font Rendering/Fonts
  • Color Matching
  • Anti-Aliased 2D Rendering
  • Cryptography Extensions
  • Timezone Updater Tool
  • Error Report Transmission
  • SNMP Protocol Adapter
  • 他にもバージョンにより無い機能もありますので、切り替える場合は改修/動作確認を入念に行う必要がありますのでご注意下さい。

    OpenJDKのサポート

    OpenJDKもOracleJDKと同様に半年ごとに次のバージョンがリリースされるようですが、有償のOracle JDKに比べ、OpenJDKでのサポートは次のバージョンが出るまでのようです。
     
    つまりJava11のサポートは次のJava12が出るまでの半年間だけということになります。OpenJDKでも3年ごとのLTSを行うという話もあるようですが、公式発表ではないようです。

    無償で長期のサポートが受けられるAdoptOpenJDK

    今後も無償で長期のサポートを受けたいという場合、個人的にもっとも有力なのはAdoptOpenJDKかと思います。
     
    AdoptOpenJDKとはIBMやMicrosoft等がバックアップしているJDKのディストリビューションで、Java8では少なくとも2023年9月まで、Java11では少なくとも2022年9月までサポートを提供するとしているようです。

    まとめ

    プロジェクトの状況や求めるものにもより、Oracle JDKを使用するのか、AdoptOpenJDKを使用するのか、それ以外にも様々な選択肢があるかと思います。
     
    JDKの仕様やサポート、切り替えにかかるコスト等を考慮し、検討する必要がありますので注意していただければと思います。

    記事をシェア
    MOST VIEWED ARTICLES