Javaプラットフォーム各エディションの特徴の説明

最終更新日: 2019年8月25日 14時30分

目次

講義の目的

Javaプラットフォーム各エディションの特徴が理解できる

開発においてJavaプラットフォームの適切な選択ができる

1. Javaの各エディション

Javaには色々な種類が存在します。一般的には、Oracle JDKかOpenJDKを使うケースが多いでしょう。

しかし、クライアント、プラットフォーム、セキュリティ、サポートの関係でOracle JDKOpenJDK以外の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になります。

サポート期間が長いのが特徴で、JDK8以前のバージョンで10年以上,今後のLTSであるJDK11や17では9年の有償サポート期間が設けられています。

7. Amazon Corretto

Amazon Correttoは、Amazonによって提供される無料のJDKです。

Amazonによって、パフォーマンスの向上とセキュリティの問題に対する不具合の修正などを含んだLTS(long term support)も提供されます。

すでにAmazonの内部で使用されている数千のサービスでCorrettoが使用されているので、安全性は高いと言えます。

7. まとめ

この講義では、Javaプラットフォーム各エディションの特徴について学習しました。

商用としてJavaを使う場合、この講義の内容は重要です。特に、プロジェクトマネージャーとしてJavaを利用している場合は、ライセンスについては詳しく知っておく必要があります。

この講義に書いてある情報だけでなく、常に最新の情報を追いかける必要があります。

演習

この講義に関連する演習問題を用意しました。理解度を確認してください。

演習