先日、Java 11が正式リリースされました。
ご存知の通りですが、本バージョンからOracle JDKが有償となりました。
その辺についての自分用のメモです。(不正確だったり間違っている内容もあるかもしれません)
概要
Java 11リリースに関連する内容は以下の通りです
- Java 9から半年ごとにメジャーバージョンが上がるリリースがされていたが、(Oracle)のJava 11は長期サポート(LTS:Long Term Support)対象のバージョンになる
- Oracleでは、LTS対象だったJava 8のサポートは2019年1月に終了する
- 32bit版のバイナリは提供されない(?)
- JavaFXがJDKから削除された(分離された)
- Java Web Startが削除された
sun.misc.Unsafe
(の一部?)が削除された
機能的なリリース内容などは以下のリリースノートを参照ください。
Oracle JDK
多くの人、多くのシステムで利用されていたのがOracleのJavaだと思います。
本バージョンから有償となりましたが、Oracleのサイトから無料でダウンロードできてしまいます。
が、ライセンスが変更になっています。
Oracle Java SE License
商用環境等で利用する場合、金を払う必要があります。
開発、テスト、プロトタイプ作成、デモを目的としていて業務、商用又は本番利用を目的として使用しない場合は無償利用して良いようです。
ダウンロードする場合は以下から実施ください。
Java SE Development Kit 11- - Downloads
OpenJDK
Javaの開発コミュニティで、Oracleがメインスポンサーとして開発が行われています。ほぼすべてのJavaの中心となります。
(もともとLTSの話が出ていましたが、結局)LTSに対応した3年間のバグフィックスやセキュリティパッチの提供予定が表明されていません。
ダウンロードは以下から実施ください。(Oracleがビルドしたバイナリを提供しています)
AdoptOpenJDK
自分自身、最近まで存在すら知らなかったです。。。
OpenJDKのビルドを提供するコミュニティで、MicrosoftやIBMなどがメインスポンサーに名を連ねています。
無償で利用できますし、LTSに関して4年間のサポートを表明しています。
Support | AdoptOpenJDK - Open source, prebuilt OpenJDK binaries
他でもよく書かれていますが、無償利用したい場合はこのJDKが最有力候補かもしれません。
現時点(2018/9/29)では、リリースされていませんが、以下リンク先等からダウンロードできるようになると思われます。
Archive | AdoptOpenJDK - Open source, prebuilt OpenJDK binaries
他のJava
RedHat等の各種LinuxディストリビューションやAzul SystemsなどもOpenJDKのビルドバイナリを提供しています。
現場でよく聞く声
Java 11リリースに関して、Java(Oracle JDK)を使ってサービスを提供している側やそのシステムを利用しているユーザからよく聞く声として以下のようなものがあります。
- これまでも、Javaに関しては別にOracleのサポートは受けたことがない。そのため、OpenJDKの利用でも問題ない。
が、大きな企業の正式な後ろ盾が無いのが気になる。 - 脆弱性の対応がなされない古いバージョンを使い続ける選択肢は基本的に考えていない。
- 有償版のOracle JDKを利用してもいいが、その費用はサービス提供者が支払うのか?ユーザが払うのか?が課題となっている
- 一部APIが削除されているので、Java 8以下で動作させていたアプリが、Java 11では動かないケースが結構ある。
- JavaでGUIアプリ作る場合は結局何で作ればいいの?(JavaFXが分離されてしまった。Swingで作るのが良いの?)
まとめ
まとめというまとめは私にできませんが、Java 11はJavaにとっての大きな節目になるのかも?とは思います。