Edited at

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 17

  • Application Class Data Sharing 18

  • Resource Management 19

  • Advanced Management Console 20

  • Usage Tracker 21


補足


  • Oracle JRE 8(≠JDK)までは自動更新もありますが、多くのJDKディストリビューションにはありません。22


    • JRE単体を多くのディストリビューション23で配布するようになっていますが、含まれない機能が多々ありますので、本記事の注釈を適宜参照ください。



  • インストーラについては多くのディストリビューションが対応するようになっています。24



  • 機能ではありませんが、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がOpenWebStartをリリースしようとする動きもあります。また、IcedTea-Webで開発されたWeb Startは、Red Hatの開発者向けOpenJDKのWindowsインストーラ 8u151以降に含まれており、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 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. JDK 9からはデフォルトで無制限の暗号化ポリシーとなっています。Oracle JDK 8u161以降は無制限の暗号化ポリシーが有効になっていますが、それ以前は 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以降にはバックポートされています。 



  17. 解析ツールのMission Controlは別プロジェクトで開発されており、Red HatのOpenJDK 11でも利用できるようになりました。また、Azul SystemsはZulu Mission Controlとして配布したり、ojdkbuild 11はインストール時にMission Controlを選択できます。BellSoftはLiberica Mission Controlをリリースしています。 



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



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



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



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



  22. ojdkbuild 8では以前からUpdate Notifierが用意されており、Red Hatの開発者向けOpenJDKのWindowsインストーラ 8u212にも反映されました。 



  23. java.comからの配布も4月リリースからライセンスが変わり、商用ではライセンスが必要となりました。無償でJRE 8を配布しているのはAzul ZuluAdoptOpenJDKBellSoft Liberica JDKAmazon Correttoがあります。 



  24. 上記23以外ではRed Hatの開発者向けOpenJDKのWindowsインストーラや、それのもとになっているojdkbuildがあります。 



  25. AdoptOpenJDKBellSoft Liberica JDKではJRE 8のMSIインストーラに対応しています。