JavaのJVMとJDKとJREとJava SEとJava EEの違いです。
目次
- JVM (Java Virtual Machine)
- JRE (Java Runtime Environment)
- JDK (Java Development Kit)
- Java SE
- Java EE
JVM (Java Virtual Machine)
Javaプログラムを動かすのに必要なプログラムです。
Java仮想マシン、Java VMとも呼ばれます。
以下の図のようにJVMの上にJavaプログラムがあるイメージです。

JVMは、WindowsやLinuxなどのOS毎の違いを吸収してくれます。
そのためプログラムをする側がOSの違いを意識しなくてよくなります。
本来であれば、OSごとにプログラムを作成する必要があります。
JVMはJRE、JDKに含まれています。
JVMの使用例
Eclipseは、Javaプログラムベースの製品です。
そのためJVMが必要です。
Eclipseの設定ファイルのeclipse.iniで、起動オプションの-vmを指定してJVMの場所を指定できます。
-vm
C:/Program Files/Java/jdk-9.0.1/bin/javaw.exe
JRE (Java Runtime Environment)
Javaを利用するためのソフトです。
Javaベースのソフトウェアを動かすときやJava実行環境が必要なサイトを利用する時などはJREが必要です。
以下のサイトで入手できます。
https://www.java.com/ja/

このページの文字ですが、「あなたとJAVA,今すぐダウンロード」とインパクトがあるものになっていてネット上のちょっとした定番ネタになっています。
以下は、Oracleの用語の違いについて書かれているリンクです。
https://www.java.com/ja/download/faq/techinfo.xml
JDK (Java Development Kit)
Javaプログラムを開発するためのソフトが入っています。
JREも含まれています。
以下は、JDKをインストールしたフォルダのbin配下です。
(C:\Program Files\Java\jdk-9.0.1\bin)
開発向けのexeファイルとして、コンパイルするためのjavac.exeやJava文書を生成するjavadoc.exeなどがあります。

JDKは、以下のOracleのサイトで入手できます。
https://www.oracle.com/technetwork/java/javase/downloads/index.html
Java SE
Java SEは、Java Platform, Standard Editionの略です。
Javaの標準的な機能のAPIの集合体です。
OracleのJava SEのダウンロードボタンをクリックするとJDKがダウンロードされます。

JavaSE (JDK)は、以下のOracleのサイトで入手できます。
https://www.oracle.com/technetwork/java/javase/downloads/index.html
以下は、OracleのJava概念図のリンクです。
リンク先の図の左側を見るとJDKはJREを内包していることがわかります。
https://docs.oracle.com/javase/jp/7/
バージョンの2から5までは J2SEと呼ばれていました。
バージョン6からJavaSEと呼ばれています。
| Java SE10 |
| Java SE9 |
| Java SE8 |
| Java SE7 |
| Java SE6 |
| J2SE 5.0 |
| J2SE 1.4 |
| J2SE 1.3 |
| J2SE 1.2 |
| JDK 1.1 |
| JDK 1.0 |
Java EE
Java Platform, Enterprise Editionの略です。
Java SEに加えてサーバー向けの機能がついています。
JDKではなくSDKとなっています。

JavaEE (SDK)は、以下のOracleのサイトで入手できます。
http://www.oracle.com/technetwork/java/javaee/downloads/index.html
関連の記事