Javaコラム Javaエンジニアのためのお役立ちコラム

Java SEの特徴とは?Java SEの有償化による変更点4つ

2020年10月22日

Javaとは?

Javaとは、Oracleからリリースされているプログラミング言語で、ほぼすべてのOSに互換します。

そしてJava SEをもとに、Java EEやJava MEなどの機能によってユーザーは、様々なオンラインでの商用開発をすることができます。

ダウンロードされたJavaは、一般向けのJava SEを基準に移植性とセキュリティ面で多くのWebサイトやアプリケーションの開発機能があり、法人向けにも幅広い分野で使用されています。

Java SEの特徴とは?

Java SEとは、Javaアプリケーションをデスクトップとサーバで開発や展開するといった、一般的な規模が特徴の素材です。

標準版のJava SE 8、Java SE 11、 Java SE 14の各シリーズは時期ごとにアップグレードするようリリースされ、進化を続けるアプリケーションに合う提案を続けています。

またOracleでは、Java SEにおける支援トレーニングをおこない、資格制度を設けてユーザーとの相互理解を深めようとしています。

APIの違い2つ

APIとは、アプリケーション・プログラミング・インターフェイスの略で、アプリケーション開発環境をつくる手法のことです。

前述したように、Java SEは一般向け標準プラットフォームの役割がありますが、法人向けの手法をセットとしてインストールできます。

法人向けソフトウェア環境をつくる手法として、Java EEと Java MEがあります。この2つのAPIとはどのような役割のものなのかを説明していきます。

API1 : Java EEとは

Java EEとは、エンタープライズ・エディション(EE)の名のとおり、主に法人向けコミュニティソフトウェアを開発する標準手法です。

その手法とは、さまざまな業種の法人にかぎらず数多くの個人ユーザーにも共有されるもので、Java SEのなかで規模の大きな役割を持ちます。

また、ユーザーが20項目以上ある実装オプションのなかからコストリスクの低いものを選べることから、Java EEは商用として適していると考えられます。

Java SEとJava EEの違い

Java SEは、一般標準としてのプラットフォームの役割をユーザー各自が評価・判断して利用しているため、現行サービスを利用しながらアップグレードしていくケースがあります。つまり、Java SEのAPIにおいては一般型が基盤となります。

それに対し、Java EEは、法人や個人向けに独自のJava コミュニティ・プロセスを持つため、各業界からのリクエストに依るAPIの提案をしています。

Java コミュニティ・プロセスとは、Java EE内においてのみ各ユーザーの要求に応える実行命令機能です。

API2 : Java MEとは

Java MEとは、ジャワプラットフォーム・マイクロ・エディションの略で、電話機など各機器のデバイス上に特化し、それら共有間に移植可能なアプリ開発環境のためのAPIを提供するものです。

関連するものに、Java Cardテクノロジーがあります。Java Cardテクノロジーとは、カード機能を活用してアプリケーションの商用展開ができ、製品開発分野を兼ね備えるテクノロジーです。

Java SEの有償化による変更点4つ

Oracleが提案したJava SEの有償化とはどういうことなのでしょうか。そしてJava SEの実行キットであるJDKのモデル・リリース・サイクルや、それにともなう機能の追加や適用されるライセンスなどについても解説します。

またユーザーにとって、JDKがアプリケーション開発に欠かせないキットということが考えられますが、このJDKとは何かについて、詳細をのちほど説明していきます。

変更点1 : リリース・サイクルを短期

2018.3より適用された新リリース・サイクルとは、JDK以外の機能の完成スケジュールの遅延や、他社との競争などの理由から改正されたものです。

もともとJDKの各新機能を一度にリリースすることに無理があったようです。

そこでJava SEのアップグレードが以前は2年に一回の目安だったのを、半年に一回と固定し、JDKは脆弱性を改善しながら年に4回リリースすることで以前の問題を解決し、短期化が実現されました。

変更点2 : 長期商用のサポートを有償化

Java SEの有償化とは、それぞれの理由で既存のバージョンを使いたいユーザーのための、長期的な有償サービスす。

つまり、ユーザーは、新リリース・サイクルにともなってJDKの新バージョンをインストールすれば無償提供されます。

Java SEが有償化、と聞くと、単に無償版が有償化するようですが、もとは商用手法の有償版Oracle JDKから無償版OpenJDKへ移行したあとの話です。

変更点3 : 機能が追加される

Java SEのアップグレードにともなって、従来からあるjdk.java.netからは「早期アクセス」で半年に一回は機能の追加があるたびに確認できます。アップグレードするユーザーにはチェックが必要となるでしょう。

ただし、JDKに関して以前と変わった点は、短期間に新しくリリースされることで機能の追加はされず、脆弱性の改善とバグの修正に留まるようです。

変更点4 :

Java SEの無償版をふたたび提供するにあたり、ライセンスGPL v2.0が適用されています。

Java SEをアップグレードするユーザーは、このライセンスをもってJavaアプリケーションを無償で開発することができます。

したがって、独自のアプリケーション開発を行うにはライセンスが適用されないので、ほかのプラットフォームでの開発となります。GPL v2.0とは、GNU(ソフトウェア・プロジェクト)が無償版の再配布のために提示したライセンスです。

Java SEに関連する用語3つ

Java SEに関しては、「JVM」「JRE」「JDK」の3つを理解しておくといいでしょう。

この用語3つの意味や役割が理解できていると、一般的なJava SEでの作業に活かせるだけでなく、作業工程を考えることや作業中に発生したアクシデントなどにも対応できるようになるでしょう。

以下で「JVM」「JRE」「JDK」の3つについて解説します。

用語1:JVM

JVMとは、Java仮想マシンとも呼ばれ、ユーザーのOS内で仮想Javaアプリケーション開発をおこなうものです。

ただし、一般向けのJVMとOracle JVMに分かれ、違いがあるのでユーザーは理解の上インストールするのが良いと考えられます。

もうひとつの特徴は、悪質なプログラミングを制御するので、セキュリティ面でも環境をととのえます。

OSを動かすアプリケーション

実際にJavaアプリケーションを開発するとき、JVMがOSとの互換性をテストします。そこではじめてOSが機能するので、JVMはその補助機能によってOSを動かすアプリケーションとなります。

前述の一般的なJVMとOracle JVMの単純な違いですが、JVMはJavaアプリケーション開発用で、 Oracle JVMはJavaアプリケーション開発および展開用となり、この点でメモリによるサーバーの選択も変わってきます。

用語2 : JRE

JREとは、Javaから提供されるソフトウェアの実行環境そのものです。いわば、Javaがこの環境をユーザーに提供することによって、言語の移植を可能にしたり、セキュリティ面をカバーしやすくしているといえます。

ユーザーはJavaをダウンロードした後、JREが提供されているかをコントロールパネルから確認することができ、インストール後はどのバージョンかが判るようになっています。

Javaプログラムを実行する

JREをインストールしなければJavaプログラムを実行することができません。つまりJREの存在によってJVM, JDKが活かされ、Javaアプリ開発ができるのです。

ユーザーはJava SEの新リリースの時期がきたとき、それにともなってJREの有効期限が切れることを通知される場合があります。これはサーバーにも左右されるようですが、アップグレードによってJavaプログラム実行が続けられます。

用語3 : JDK

JDK(OpenJDK)とは、ジャワ・デベロップメント・キットの略称のとおり、Javaアプリ開発・展開のためのキットです。

JREの環境のなかで開発実行の補助の役割があり、Java SEのアップグレードとともに無償提供されます。

JDKは、Java SEにおけるJavaアプリケーションの開発・展開規模に応じた実装そのものの存在としてユーザーに提供されています。

Javaプログラムの開発・実行を行う

JDKは、JDKだけのAPIを使ってJavaプログラムの開発・実行を行うことができます。その独自の30項目以上の実装や定義づけのなかで、Java SEのAPIでは実行できないAPIが含まれています。

Javaのなかでモジュールという用語が出てきますが、JavaでいうモジュールとはAPIの項目を指し、Java SEのモジュールのAPI名には「java」、JDKのAPIには「jdk」と分けられています。

Java SEについて理解を深めよう!

Java SEの特徴と有償化などについて説明しましたが、ユーザーにとってのメリットはお解りいただけたでしょうか。オラクルがJava SEの有償化を提案した流れは、やはりユーザー側の進化に添ったもの、と捉えられます。

それぞれのニーズに応じて細かく手法を提案し、スタンダード性を高めて誰もが簡単に使えるプロセスをもつJava SEを使って、アプリケーション開発の作業効率化を図りましょう。


Java分野でのキャリアアップをお考えの方は、現在募集中の求人情報をご覧ください。

求人一覧

また、直接のエントリーも受け付けております。

エントリー(応募フォーム)