Java
oracle
OpenJDK
java8
JDK

Oracle JDK 8にあってOpenJDKにない機能


はじめに

Oracle JDK/JRE 8のPublic Updates1が商用ユーザーに対しては2019年1月までで終了し、別のJDKディストリビューションへの切り替えを考えている方も多いと思います。

しかし、特にOracle JDK 8までは、素のOpenJDKにはない2機能が多く存在します。

安易に切り替えてトラブルにならないように、Oracle JDK 8にはあるが、一般的なOpenJDKディストリビューション3にはない機能を無償・有償別にまとめてみます。


Oracle JDK 8時点で無償利用できる機能


  • Applets/JRE Browser plug-in 4

  • Java Web Start 5

  • JavaFX 6

  • VisualVM 7

  • Derby DB 8

  • Font Rendering/Fonts 9

  • Color Matching 10

  • Anti-Aliased 2D Rendering 11

  • Cryptography Extensions 12

  • Timezone Updater Tool 13

  • Error Report Transmission 14

  • SNMP Protocol Adapter 15


Oracle JDK 8時点では有償利用する機能


  • Flight Recorder 16

  • Mission Control 16

  • Application Class Data Sharing 17

  • Resource Management 18

  • Advanced Management Console 19

  • Usage Tracker 20


補足


  • Oracle JRE 8(≠JDK)までは自動更新もありますが、多くのJDKディストリビューションにはありません。(JRE自体を配布していない場合もあります。)

  • インストーラ有無は、JDKディストリビューションによります。有償機能ですが、Oracle JRE 8にはMSI Enterprise JRE Installerも用意されています。

  • 機能ではありませんが、SSL証明書用のデフォルトのキーストア(JRE_HOME/lib/security/cacerts)やタイムゾーン・データベース(JRE_HOME/lib/tzdb.dat)は、JDKディストリビューションによって異なる場合が多いです。


まとめ


  • JDKディストリビューションは有償版・無償版を含め数多く存在しますので、環境・状況に適したものを選びましょう。


参考リンク





  1. 参考リンクのサポート・ロードマップ(日本語)では"公式アップデート"と訳されていますが、実際は"公開アップデート"の意味であり、英語原文の"Public Updates"のままとしました。 



  2. OpenJDK 11では元々Oracle JDKで有償だった多くの機能が寄贈されているため、事情が異なります。また、それ以前であっても、JDKディストリビューションによっては互換機能が存在する場合もあります。 



  3. JDK 8では、以前からRed HatのOpenJDKAzul SystemsのZuluAdoptOpenJDKなどがあり、比較的最近ではAmazon Correttoが正式リリースされ話題になりました。 



  4. ChromeやFirefoxでは2015年以降に順次利用できなくなり、Oracle JDK/JRE 9から非推奨となることが2016年頭に発表され、JDK 11から削除されました。(2018年9月のSafari 12でも利用できなくなりました。) 



  5. JDK 11から削除されましたが、Karakunで後継製品を実装しようとする動きもあります。また、IcedTea-Webで開発されたJava Web Startは、Red Hatの開発者向けOpenJDK 8u151以降のWindowsインストーラに含まれており、RHEL用のOpenJDK以外にWindowsも今後正式サポートする予定のようです。ojdkbuild 8u151以降でもインストール時に選択できます。 



  6. JDK 11に含まれていませんが、OpenJFXを独自に組み込むことはできます。また、BellSoft Liberica JDKAzul ZuluFXはOpenJFXをバンドルしています。なお、Amazon Corretto 8はOpenJFXをバンドルしていますが11には含まれませんojdkbuild 8はインストール時に選択できます。 



  7. JDK 9から削除されましたが、OpenJDKとは別のオープンソースとして配布されています。 



  8. Java DBとも呼ばれ、JDK 9から削除されましたが、実体はApache Derbyです。 



  9. Azul SystemsのZuluではCommercial Compatibility Kitとしてフォントライブラリが別途配布されています。AdoptOpenJDKはFreetypeを採用しています。Oracle JDK 11では固有だったT2KやLucidaフォントは削除されました。 



  10. JDK 9までKodak Color Management System (KCMS)ライブラリが使われていましたが、JDK 10からOpenJDKで使われていたLittle CMS (LCMS)ライブラリに置き換わったようです。AdoptOpenJDKはLCMSを採用しています。 



  11. JEP 265としてJDK 9からオープンソースのMarlinライブラリに置き換わりました。AdoptOpenJDK 8はpiscesを採用しています。 



  12. Java SE DownloadsのAdditional Resourcesからダウンロードできます。また、Azul SystemsはZulu Cryptography Extension Kitを配布しています。 



  13. Java SE DownloadsのAdditional Resourcesからダウンロードできます。また、Azul SystemsはオープンソースのZIUpdaterを配布しています。BellSoftもIANA Updaterを提供しています。 



  14. OpenJDK 12で削除される予定です。 



  15. 代替としてSNMP4Jを使う方もいるようです。 



  16. JEP 328としてOpenJDK 11からFlight Recorderが入っていますが、Azul Zulu 8.35以降にはバックポートされています。また、解析ツールのMission Controlは別途配布されており、ojdkbuild 11は実験的ですがインストール時にMission Controlを選択できます。 



  17. JEP 310としてOpenJDK 10から利用できるようになっています。 



  18. Oracle JDK 10から非推奨となり、JDK 11でオプションが削除されました。 



  19. Java SE DownloadsのAdditional Resourcesからダウンロードできますが、有償機能です。 



  20. Usage Loggerの名前でオープンソース化に向けて作業中です。また、Advanced Management Consoleで使用状況を管理するのに用いられます。