JREとJVMとJDKとJava SEの違い

JavaのJREとJVMとJDKとJava SEの違いです。

目次

説明 JREとJVMとは
  JDK (Java Development Kit)とは
  Java SEとは
  Java EEとは

JREとJVMとは

JREとは

JREとは、Java Runtime Environmentの略でJavaの実行環境です。

Javaランタイムとも呼ばれます。

Javaベースのソフトウェアを動かすときやJava実行環境が必要なサイトを利用する時などに必要です。

JREは、以下のサイトで入手できます。
https://www.java.com/ja/

このページの「あなたとJAVA,今すぐダウンロード」は、インパクトがあるのでネット上の定番ネタにもなっています。

 

JVMとは

Java Virtual Machineの略でJavaプログラムを動かすのに必要なJava仮想マシンです。

Java VMとも呼ばれます。

上図のようにJREの中にJVMがあるイメージです(JRE = JVM + ライブラリ)。

 

OSの違いを吸収

JVMは、クラスファイルのバイトコードをCPUが実行するマシン語に変換します。
WindowsやLinuxなどのOS毎の違いを吸収してくれるのでプログラムを作成する側がOSの違いを意識しなくてよくなります。
※本来であれば、OSごとにプログラムを作成する必要があります。

 

管理するメモリ

JVMのメモリ管理は、ヒープ(Heap)とスタック(Stack)を管理します。
ヒープはインスタンス生成時に使用されます。

 

ガベージコレクション(GC)

JVMは、自動的にヒープ(Heap)にある不要なインスタンスを解放します。
ガベージ(Garbage)はゴミ箱という意味です。
何らかの原因でインスタンスが解放されず空き容量が減る不具合が起こる場合があります。
この現象をメモリリーク(memory leak)と呼びます。

 

対応するプログラミング言語

JVMは、Java以外のScalaやKotlinといったプログラミング言語も動かすことができます。

 

JVMの使用例

Eclipseの設定ファイルのeclipse.iniで、起動オプションの-vmを指定してJVMの場所を指定します。

-vm
C:/Program Files/Java/jdk1.8.0_211/bin/javaw.exe

以下は、Oracleの用語の違いについて書かれているリンクです。
https://www.java.com/ja/download/faq/techinfo.xml

 

JDK (Java Development Kit)とは

JDKは、JREとJavaプログラムを開発するためのライブラリが入っています。

具体的な開発のライブラリ

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

以下は、OracleのJava概念図のリンクです。
リンク先の図の左側を見るとJDKはJREを内包していることがわかります。
https://docs.oracle.com/javase/jp/7/

 

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

呼び方の歴史

最初は、1.Xでしたがバージョン5から5になりました。

バージョンの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 EEというのもあります。Java Platform, Enterprise Editionの略です。
Java SEに加えてサーバー向けの機能がついています。
Oracleのサイトでは、JDKではなくSDKとなっています。

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

関連の記事

JDKのインストールと環境変数の設定

△上に戻る