気の向くままに辿るIT/ICT/IoT
Java

Java バージョン

ホーム前へ次へ
Java SE/Java EE/J2SE/J2EE...Java SDK/JDK/JRE...とは?

Java バージョン

Java バージョン表記

 Javaのバージョン表記と併せてEE/SE/MEといった分類表記もあります。

Javaバージョンの変遷

 Javaのバージョン表記は、リリースから現在に至るまでに変更が加えられています。

変遷表記
四期Java 5/Java SE 5(/Java ME x/Java EE x)
三期J2SE 5.0
二期J2SE 1.x
初期Java 1.x

 尚、二期当時Java 2 SDK バージョン1.3などと呼ばれており、Java 2の[2]がJava自体のメジャーバージョンでSDKのバージョンが1.3...?それとも「Java 2」というplatformのバージョンも1.3?というように若干微妙なネーミングでした。

 それでは何がなんだかさっぱりわかりません。。。これは一体どうしたことか?よく考えてみるとどうでもいい気もしますが、ちょっと気になるのが人情ってものでしょう。

Java Platformのバージョンと開発キットのバージョン

 Javaのバージョンは、数回に渡り見直されていますが、その理由は定かではありませんし、一部予測の域を出なかったり、バージョンだけに着目している為にかなり端折っているように感じる部分も含まれますが、大方こんなところでしょう。

 Javaの初期バージョンは、Java 1.x表記でした。

Javaバージョン開発キットバージョン
Java 1.2JDK 1.2
Java 1.1JDK 1.1
Java 1.0JDK 1.0

 この時、開発キットについては、「Java Software Development Kit(Java Development Kit??)」を略してJDKと呼ばれていました。

 ある時点でバージョン表記の見直しが行われ、当時の最新バージョンJava 1.2がJava 2という表記に移行されることになりました。

Java 2 誕生
Java 1.2 => Java 2

 一方、後の展開を考慮したJava 2における展開の基盤として標準パッケージをリリース、それはJ2SEと命名されました。

通称・略記開発環境
J2SEJava 2 Platform, Standard Edition

 それに伴い、Javaバージョンと開発キットバージョン共に当時の開発キット最新バージョン1.2をそのままにJ2SE 1.2という表記に移行することになりました。

 尚、このJ2SE 1.3.x/J2SE 1.4時点では、開発キットは既にJDKではなく、「Java Software Development Kit」を(Javaを除き)略してSDKと呼ばれていました(SDKはJavaに限らず同じ意味のIT用語としてよく使われます)。

開発キット
通称・略記意味
SDKSoftware Development Kit
Java Software Development Kit
Java Platformバージョン開発キットバージョン
J2SE 1.4.xJ2SE SDK 1.4.x
J2SE 1.3.xJ2SE SDK 1.3.x
J2SE 1.2.xJ2SE SDK 1.2.x

 時が経ち、再度Java Platformのバージョン部分の表記の見直しが行われ、J2SE 1.4の後継としてJ2SE 1.5ではなくJ2SE 5.0がリリースされました。

Java Platformバージョン開発キットバージョン
J2SE 5.0

 間もなく再度表記の見直しが行われ、J2SE 5.0はJava SE 5と表記されることになりました(が、その寿命はないに等しいくらい短いものでJava SE 6にバージョンアップされました)。

Java Platformバージョン開発キットバージョン
J2SE 5.0 => Java SE 5

 このJava SEにバージョンを伴う場合は、それぞれ末尾にメジャーバージョン付きで表記することになります。

Java Platformバージョン開発キットバージョン
Java SE 5Java SE SDK 5

 更にマイナーバージョンのアップデートは、メジャーバージョンの後にUpdate xという表記を追加することになりました。

【現行表記】 Java Platformバージョン
メジャーバージョンマイナー(アップデート)バージョン
Java SE 5Java SE 5 Update x
【現行表記】 開発キットバージョン
メジャーバージョンマイナー(アップデート)バージョン
Java SE SDK 5Java SE SDK 5 Update x

 尚、単にJava 5のように表記される場合もあります。

Javaバージョン
Java 5

 また、SEのエンタープライズ(商用)版EE、組み込み系・モバイル用途のMEが開発・リリースされ、それぞれJava SE/Java EE/Java MEとされました。

通称・略記開発環境
Java EEJava Platform, Enterprise Edition
Java SEJava Platform, Standard Edition
Java MEJava Platform, Micro Edition

 開発キットは、SE/EE/MEのSDKと区分する為に自ずとSE SDK/EE SDK/ME SDKと呼ぶことになるはずです。。。

Java Platform開発キット
Java EEJava EE SDK
Java SEJava SE JDK > Java SE SDK
Java MEJava ME SDK

 が、しかし、用語の使われ方を見るとoracle.com内ではJava EEとMEはSDK、Java SEはJDKという表記が多く見受けられます。

 Java6からは、JDK 6として開発キットがリリースされているようで、少なくともJava SEに関してはバージョン6から、JDKに戻るようです。

【Java SE 6】開発キット
Java SE バージョン開発キットとバージョン
Java SE 6JDK 6

 また、どうもjava関連サイトを読んでみるとSEを基準としてEEは機能拡張版、MEは機能縮小版という位置づけ、且つ、SE/EE/MEは、Java APIであり、

機能拡張版標準機能縮小版
APIJava EEJava SEJava ME
開発キットJava EE SDKJava SE JDKJava ME SDK

そのAPIにJava Web StartとApplet/Java Plug-in、Java VMを加えたものがJRE、更にJREにJava Platform(Java言語そのもの)と各種Javaコンパイラを加えたスーパーセットがJDKという位置づけのようです。

JDKJREJava Platform各種Javaコンパイラ
JREAPIJava Web StartApplet/Java Plug-inJava VM
APIJava EE/Java SE/Java ME
Java Platform = プログラミング言語Java

 尚、初期のJDKは、Javaコンパイラ+アプレット開発環境+JREなど最小セットの開発キット及びそれを指す名称となった時期もあったかと思いますが、逆のような印象もあるもののAPI/JRE/JDKの話はこれと符合します。

【旧】開発キット
通称・略記意味スペック
SDKSoftware Development Kitフル
JDKJava Development Kitミニマム

 尤も、そもそもここにSDKとJDKという2つの用語が出てくるので話が余計ややこしくなるわけですが、更に先のようにSEはJDK、EE/MEはSDKなんて・・・。

 ただ、JDKはスーパーセットというより、Java開発のミニマム環境であるJDKをベースとしてAPIにバリエーションがあり、別途、クライアント端末の実行環境としてJREがあるという方が自然な発想と考え方であるように思います。

API / インタフェース
Java EE/Java SE/Java ME
JDK / 開発環境
Java Platform各種JavaコンパイラJRE
JRE / 実行環境
APIJava Web StartApplet/Java Plug-inJava VM

 但し、そうなるとAPIの有無の差はあれJDKには要不要に関わらず全機能が備わっているということになるわけですが。

 何れにしても開発キットに関して言えば、API機能拡張版あるEEにはSEが包含されているのでEE SDKにはSE JDKも含まれているということのようなのですが、他方、機能縮小版であるMEはSEに包含されるのかと思いきや、実際にはそうではない為、組み込み系&モバイル開発にはME SDKが必要となるという説明上の矛盾が存在します。

 ちなみに組み込み系は更にEmbedded仕様としてAPIを切り出し特化しているようでJava SE for Embedded/Java ME for Embeddedのようなラインナップが追加されています。

 そもそもoracle.comdocs.oracle.com(例:/javase/6/docs/)、java.comjava.netjava.sun.comなど情報に統一感がなく、ベンダー内でも錯綜しているようにも見受けられるものの、どうもOpenJDKというプロジェクトでリリースされるのがオープンソースの開発環境で、これとは別に(EEではなくSEの)同じバージョンの商用版をリリースしようとしている?ような気もします(SEのサポート付き有償版とはまた別の話で)。

 つまり、OpenJDKが基を作るにしてもトッピングを替えてSEオープンソース版とSE商用版に分割、それを元にEE/MEの再仕様化をすることにより、自ずとEE/MEのオープンソース版とSE商用版が誕生する可能性があるように見受けられます(要するにMFCが利用できるか否か含むMicrosoftのVisual StudioとExpress版のようなイメージ)。

(元々不明瞭なところにOracleによるSun買収とビジネスモデル再考による不透明さが加わっているようで調べれば調べるほどわからなくなる。。。また、何れ調べてまとまったら適宜修正更新するかもしれません。)

 尚、実行環境JREは、左から順にメジャー/マイナー/リビジョンをドットでつないだ表記となっています。

Java実行環境
JRE x.x.xJava Runtime Environment x

 但し、リビジョンなしで[ JRE x.x ]とする場合やリビジョンの末尾にアンダースコア[ _ ]に続けて更に数値が付加されている場合があります。

Java バージョンの確認方法

 Javaのバージョンを確認するには、下記のような方法含め、いくつかあります。

CUIの場合GUIの場合
prompt> java -version

prompt> javac -version
netBeansを起動
ヘルプメニューからバージョンを確認
Windowsの場合

コントロールパネルを開く

Javaアイコンに表示されるバージョン

または

Javaアイコンをクリックして開くウィンドウパネル

で確認
..etc.

 JREのバージョンは、Windowsなら先の方法でも確認可能ですが、http://www.java.com/ja/download/installed.jspならボタン1つでオンラインチェック可能です。

ホーム前へ次へ