Javaプラットフォーム各エディションの特徴の説明
目次
講義の目的
Javaプラットフォーム各エディションの特徴が理解できる
開発においてJavaプラットフォームの適切な選択ができる
1. Javaの各エディション
Javaには色々な種類が存在します。一般的には、Oracle JDKかOpenJDKを使うケースが多いでしょう。
しかし、クライアント、プラットフォーム、セキュリティ、サポートの関係でOracle JDK
、OpenJDK
以外のJavaを利用せざるをえない状況もあります。どのJavaも実装方法は同じですが、長期にわたって運用していく場合、どのJavaを選択するかは重要になってきます。
この講義では、様々なJavaの各エディションについて説明します。
2. JRE
JRE
はJavaプログラムを実行するために必要なソフトウェアが含まれているJavaです。
JRE
は Java Runtime Environment の略になります。
Javaプログラムを実行するためには、JRE
が必要です。
しかし、Java11からはJDK
(次で説明)のみとなり JRE
は単体で配布されなくなりました。
理由は、JDK9で導入された Project Jigsaw
の導入によって、アプリケーションごとにカスタマイズしたJRE
を作成できるようになったためです。
3. Oracle JDK
JDK
はJavaプログラムの開発環境です。
JDK
は Java Development Kit の略になります。
Oracle JDK
は2019年4月16日から新しいライセンス「Oracle Technology Network License」となりました。個人利用・開発目的では無償利用が許可されていますが、商用で利用したい場合は、「Oracle Java SE Subscriptions」の購入が案内されています。
エンタープライズなどで利用する場合は、頻繁なセキュリティアップデートにも対応する必要があると思います。開発前に、サポート体制や運用料金についても話を詰める必要があります。
もちろん、個人でJavaの学習やアプリの開発として利用するぶんには、サポート体制や運用料金を意識する必要はありません。と同時にOracle JDK
を使う理由もないので、その場合は、OpenJDK
を使うのが一番良いと思います。
4. OpenJDK
OpenJDK
はJavaプログラムの開発環境です。無償利用可能で、オープンソースの実装です。
資金のないスタートアップや新規事業で新規アプリを開発する場合は、Oracle JDK
でなく、こちらのOpenJDK
を使うことになるでしょう。
一方で、商用でOpenJDK
を選択した場合に大きな問題となるのはサポート期間です。OpenJDK
の公式サポート期間は,各バージョンごとに次のバージョンがリリースされるまでとなっています。つまり、実質的には6ヵ月です。サポート期間が終了したバージョンには,原則として修正パッチ等は提供されません。
OracleはセキュリティーパッチはLTS(long term support)と同様の物を取り込む支援をすると表明しましたが、LTS自体はまだ明言されていません。
5. AdoptOpenJDK
AdoptOpenJDK
は、有償サポートが絶対に必要だという会社以外にとって有力なJavaプログラムの開発環境です。
スポンサーにIBM、Microsoft、Azul Systemsが参加しています。
OpenJDK
は巨大なソフトウェアなので、普通の会社でメンテナンスはほぼ不可能です。ライセンスもGPLでソースの公開が必要になるので、一般の会社がやることはないでしょう。
今後も多くのJava利用企業がAdoptOpenJDK
に合流するのではないかと考えられています。
6. Zulu
Zulu
は、Azul Systems社によって提供される長期間のサポートを提供するOpenJDK
ベースのJDKです。
無償でダウンロードおよび使用することができ,プラスアルファで有償のサポートを加えた製品がZulu Enterpriseになります。
サポート期間が長いのが特徴で、JDK
8以前のバージョンで10年以上,今後のLTSであるJDK
11や17では9年の有償サポート期間が設けられています。
7. Amazon Corretto
Amazon Corretto
は、Amazonによって提供される無料のJDK
です。
Amazonによって、パフォーマンスの向上とセキュリティの問題に対する不具合の修正などを含んだLTS(long term support)も提供されます。
すでにAmazonの内部で使用されている数千のサービスでCorrettoが使用されているので、安全性は高いと言えます。
7. まとめ
この講義では、Javaプラットフォーム各エディションの特徴について学習しました。
商用としてJavaを使う場合、この講義の内容は重要です。特に、プロジェクトマネージャーとしてJavaを利用している場合は、ライセンスについては詳しく知っておく必要があります。
この講義に書いてある情報だけでなく、常に最新の情報を追いかける必要があります。
演習
この講義に関連する演習問題を用意しました。理解度を確認してください。
演習