Dev Study
← Spring コース

1. Java・JDK・JRE・JVM: 何を入れて、何が動くのか

(Java Virtual Machine)は、Java のプログラムを動かすプログラムです。 コマンドを実行すると動き出します。読むのは人が書いたソースではなく、 というコンパイラで先に変換しておいた というファイルです。Node で近いのは JavaScript のエンジンの で、Node.js そのものではありません。このセクションでは、後のレッスンに出てくる言葉を先にそろえます。

JVM にと java コマンドを足した、動かすだけの一式が (Java Runtime Environment)です。役割として Node.js 本体に近いのはこちらです。JRE に javac などの開発用の道具を足した一式が (Java Development Kit)です。手元に入れるのは JDK で、Oracle の導入の手引きも、開発にも実行にも JDK を入れるよう書いています。

Java という語は、言語、規格()、配布物(JDK)のどれも指します。JDK は1種類ではなく、 という共通のソースから、Oracle や などがビルドして配っています。Adoptium の JDK が 、Oracle が商用ライセンスで配る JDK が です。Oracle は JDK 11 から JRE を単独では配っていません。

点線の付いた語はタップすると説明が出ます。用語集を開く →

JDK は JRE を含み、JRE は JVM を含む(右の → は Node で近いもの)
JDK開発用の一式。JRE に javac・jar・javap などの道具を足したもの。入れるのはこれ
Node: Node.js 本体と開発用の道具
中に含む
JRE動かすだけの一式。JVM と標準ライブラリと java コマンド
Node: Node.js 本体
中に含む
JVM.class を読んで実行するプログラム(仮想の計算機)。OpenJDK での実装の名前は HotSpot
Node: V8
標準ライブラリString など、最初から使えるクラス
  • ・Node との対応は役割のたとえです。Java や Node の公式文書が、相手との対応を述べているわけではありません
  • ・Temurin 25.0.4.1 の JDK と JRE を比べると、bin に入っているコマンドは JDK が 30 個、JRE が 6 個でした。JRE には javac がありません。JVM の本体(Linux の Temurin では lib/server/libjvm.so)は、どちらも同じ大きさのファイルでした。Temurin は JRE も配っています
  • ・HotSpot は、OpenJDK に入っている JVM の実装の名前です。JVM は仕様で決まっていて、実装は複数ありえます。java -version の3行目に出る OpenJDK 64-Bit Server VM が HotSpot です
  • ・Temurin は、Eclipse Adoptium が OpenJDK のソースからビルドして無料で配っている JDK の名前です。Oracle は同じソースから、無料の OpenJDK ビルドと、商用ライセンスの Oracle JDK の2種類を配っています。このコースの実測は Temurin 25.0.4.1 で行っています
  • ・Java SE は Java Platform, Standard Edition の略です。Java の版は半年ごとに出ます。LTS(Long-Term Support)は、配布元がその版を長く支援するという約束で、言語や規格の性質ではありません。Oracle は 8・11・17・21・25 を LTS としています。2026年10月時点の最新版は JDK 27 で、25 は最新の LTS です
  • ・下のコードは、いま動いている Java の規格の版、JDK の版と配布元、JVM の名前を表示します

▶ サンプルコードを実行してみよう(自由に書き換えてOK)

Java

図やコードに出てくる用語(タップで説明)

サンプルコードで身につける(5本) →

学んだ概念を、素朴な例から実務寄りの例まで5つの具体例で確認します。

公式ドキュメントで詳しく ↗