JVM,JRE,JDKの違いと関連性を知りたい

JAVAにはJVM、JRE、JDKという不可欠なコンポーネントが存在しますが、これらの違いは何なのでしょうか。また、それぞれどのように関連しているのでしょうか。

JAVAの存在を知ってからかなりの時間がたちました。恥ずかしながら、いまだになにがどんな役割をしているのかを忘れすることがあります。なので、違いと関連性をまとめてみました。

java(JVM、JRE、JDK)違いと関連性について

Javaはオブジェクト指向プログラミング言語のひとつです。世界的にも人気の高い言語です。

JVM(Java Virtual Machine)

ひとことで言うと、Javaを動かすために必要なソフトウェアです。

JVMは2つの主要な機能があります。

  1. さまざまなデバイスやOSでの実行環境を提供
  2. プログラムのメモリー管理と最適化

2は、具体的には、ガベージコレクションというプロセスを介してメモリーを管理しています。

ガベージコレクションは実行中のJVMインスタンスのなかで行われ、Javaプログラム内の未使用のメモリーを継続的に識別して除去します。

JRE(Java Runtime Environment)

Javaを動かすのに必要な部品(ソフトウェア)の詰め合わせ(パッケージ)です。具体的には、JREがJVMを呼ぶ(作成する)イメージです。

JDK(Java Development Kit)

JVMおよびJREによって実行できるJAVAプログラムを作成できる開発キットです。

JDKは主に2つのパッケージがあります。

Java Standard Edition(JavaSE) 標準的な機能がまとめられたAPIの集合体です
Java Enterprise Edition(JavaEE) JavaSEにサーバ関係のAPIを追加したもの

まとめ

インストールの観点からそれぞれを見てみます。

JREをインストールすれば、JVMが含まれます。JDKをインストールすれば、バージョンに互換性のあるJREが一緒に入ります。JREにはJVMが含まれます。

次に関係性についてみてみます。

JVMを起動するにはJREが必要です。JAVAアプリケーションを開発するためにはJDKが必要です。

結論、目的によってインストールするパッケージが変わるということです。

  • JAVAプログラムを動かしたいだけならJREをインストールする。
  • JAVAアプリケーションを開発したいならJDKをインストールする。

まずは上記2点について理解ができていれば、JAVAの利用や環境構築には何も問題ないと思います。

タイトルとURLをコピーしました