Javaのバージョン表記と併せてEE/SE/MEといった分類表記もあります。
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のバージョンは、数回に渡り見直されていますが、その理由は定かではありませんし、一部予測の域を出なかったり、バージョンだけに着目している為にかなり端折っているように感じる部分も含まれますが、大方こんなところでしょう。
Javaの初期バージョンは、Java 1.x表記でした。
Javaバージョン | 開発キットバージョン |
---|---|
Java 1.2 | JDK 1.2 |
Java 1.1 | JDK 1.1 |
Java 1.0 | JDK 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と命名されました。
通称・略記 | 開発環境 |
---|---|
J2SE | Java 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用語としてよく使われます)。
開発キット | ||
---|---|---|
通称・略記 | 意味 | |
SDK | Software Development Kit Java Software Development Kit |
Java Platformバージョン | 開発キットバージョン |
---|---|
J2SE 1.4.x | J2SE SDK 1.4.x |
J2SE 1.3.x | J2SE SDK 1.3.x |
J2SE 1.2.x | J2SE 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 5 | Java SE SDK 5 |
更にマイナーバージョンのアップデートは、メジャーバージョンの後にUpdate xという表記を追加することになりました。
【現行表記】 Java Platformバージョン | |
---|---|
メジャーバージョン | マイナー(アップデート)バージョン |
Java SE 5 | Java SE 5 Update x |
【現行表記】 開発キットバージョン | |
---|---|
メジャーバージョン | マイナー(アップデート)バージョン |
Java SE SDK 5 | Java SE SDK 5 Update x |
尚、単にJava 5のように表記される場合もあります。
Javaバージョン |
---|
Java 5 |
また、SEのエンタープライズ(商用)版EE、組み込み系・モバイル用途のMEが開発・リリースされ、それぞれJava SE/Java EE/Java MEとされました。
通称・略記 | 開発環境 |
---|---|
Java EE | Java Platform, Enterprise Edition |
Java SE | Java Platform, Standard Edition |
Java ME | Java Platform, Micro Edition |
開発キットは、SE/EE/MEのSDKと区分する為に自ずとSE SDK/EE SDK/ME SDKと呼ぶことになるはずです。。。
Java Platform | 開発キット |
---|---|
Java EE | Java EE SDK |
Java SE | Java SE JDK > Java SE SDK |
Java ME | Java 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 6 | JDK 6 |
また、どうもjava関連サイトを読んでみるとSEを基準としてEEは機能拡張版、MEは機能縮小版という位置づけ、且つ、SE/EE/MEは、Java APIであり、
機能拡張版 | 標準 | 機能縮小版 | |
---|---|---|---|
API | Java EE | Java SE | Java ME |
開発キット | Java EE SDK | Java SE JDK | Java ME SDK |
そのAPIにJava Web StartとApplet/Java Plug-in、Java VMを加えたものがJRE、更にJREにJava Platform(Java言語そのもの)と各種Javaコンパイラを加えたスーパーセットがJDKという位置づけのようです。
JDK | JRE | Java Platform | 各種Javaコンパイラ | ||
---|---|---|---|---|---|
JRE | API | Java Web Start | Applet/Java Plug-in | Java VM | |
API | Java EE/Java SE/Java ME |
Java Platform = プログラミング言語Java |
---|
尚、初期のJDKは、Javaコンパイラ+アプレット開発環境+JREなど最小セットの開発キット及びそれを指す名称となった時期もあったかと思いますが、逆のような印象もあるもののAPI/JRE/JDKの話はこれと符合します。
【旧】開発キット | ||
---|---|---|
通称・略記 | 意味 | スペック |
SDK | Software Development Kit | フル |
JDK | Java 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 / 実行環境 | |||
---|---|---|---|
API | Java Web Start | Applet/Java Plug-in | Java 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.com、docs.oracle.com(例:/javase/6/docs/)、java.com、java.net、java.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.x | Java Runtime Environment x |
但し、リビジョンなしで[ JRE x.x ]とする場合やリビジョンの末尾にアンダースコア[ _ ]に続けて更に数値が付加されている場合があります。
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つでオンラインチェック可能です。