JDK、JRE、JVMの階層関係は、「プロの料理人が使う厨房の装備」に例えて理解するとスムーズです。
- JVM(Java仮想マシン):料理を作るための「コンロやオーブンなどの基本熱源」です。実際に調理を行うエンジンにあたります。
- JRE(Java実行環境):JVMに加えて、包丁や調理台、基本調味料などの「料理を出すために最低限必要な設備一式」です。一般ユーザーが料理を味わう(プログラムを実行する)だけならこれだけで十分です。
- JDK(Java開発キット):JREに加えて、新しいレシピを作るための「特殊器具、測定器、食材試作セット、レシピ本作成ツール」まで完備された「フルスペックのプロ仕様調理場」です。開発者にはこのJDKが必須となります。
コマンドラインからJDKのバージョンを確認する際は、以下のコマンドを実行します。
$ javac -version
javac 17.0.2
$ java -version
java version "17.0.2" 2022-01-18 LTS