branch10480’s blog

Topics that I've learned.

JVM, JRE, JDK について

こんちには! 前回に引き続き今回もJava についてで、具体的には JVM, JRE, JDK をまとめていきます

JVM

Java Virtual Machine の略でJavaアプリケーションをOS上で動かすためのアプリケーションです。

C言語などのプログラムの場合、各OS上でコンパイルされてできるファイルはそれぞれのOS上で異なる実行ファイルです。またこの実行ファイルは単独で実行することが可能という特徴を持っています。

それに対し、Javaで作成したプログラムをコンパイルした場合、 中間コード と呼ばれるJavaクラスファイルを出力します。このJavaクラスファイル は単独で実行することができず、実行したいOSにインストールされているJVM上で実行できます。

同じJavaクラスファイルから各OSで実行するための架け橋としてJVMが機能します。(Javaクラスファイル -> 各OSの実行ファイルに変換をする)

繰り返しになりますが、Javaアプリケーションを実行するためにはその架け橋となる JVMがインストールされていることが必要 です。

JRE

Java Runtime Environment の略でJavaプログラムを実行するためのセットを指し、Java実行環境, Javaランタイムなどと呼ばれます。

このJREには、JVMやAPIセットが含まれます。

先程、Javaアプリケーションを実行するためにはJVMがインストールされている必要があると述べましたが、正確には JREを各OSにインストールしてある必要があります

JREは対応するJSEに合わせてバージョン番号が付与されており、JRE8, JRE11などがあります。

そしてこのJREについてですが、現在は単独でインストールすることができず、次に説明するJDKをインストールすることで同様にインストールされることになります。

JDK

Java Development Kit の略で、Javaプログラムの実行、開発を行うためのセットです。

JREやデバッグするためのプログラムが入っています。現在はこのJDKをインストールすることでJREを入れることができます。

JREと同じく、Java SE のバージョンに合わせて番号が付与されます。(e.g.: JDK8, JDK11)

まとめ

今回はJVM, JRE, JDKについて見ていきました。

次回はJDK9以降のJDK選択、JDKの有償化についてまとめます!

参考

Java | Java SEとJDK、JRE、JVMの違いに関する解説