Java仮想マシン
Java仮想マシン(英:Java Virtual Machine)とは、Javaプログラムを実行するためのソフトウェアです。「Java VM」や「JVM」と略されて表現されることが多いです。
Javaバイトコードで記述されたコンピュータプログラムを解釈し、そのコンピュータで実行可能な形式のコードに変換して実行します。
さまざまな環境でJavaプログラムを動かすことができる
Javaは「Write once, run anywhere」(一度プログラムを書けば、どのコンピュータでも動く)をコンセプトにして開発された言語のため、プラットフォーム(Windows、macOS、Linuxなど)に依存せず、さまざまな環境で動かすことができます。
Javaプログラムは次の図のように、Java仮想マシンの上で動作します。
Javaのコンパイラは、Javaバイトコード(Javaのクラスファイル)というJava仮想マシンで実行可能な形式にコンパイルします。
そして Java仮想マシンは、各プラットフォームの差異を吸収するクッション的なソフトウェアであり、Javaバイトコードで記述されたコンピュータプログラムを解釈し、各プラットフォームで実行可能な形式のコード(機械語)に変換して実行します。
JVM言語
JVM言語とは、Java仮想マシン(JVM)で動作するプログラミング言語のことです。
Java仮想マシンは、Javaプログラムを実行するためのソフトウェアですが、Java以外で書かれたプログラムを実行することもできます。
JVM言語は、Java仮想マシンで実行可能な形式である「Javaバイトコード」に変換(コンパイル)します。Javaバイトコードに変換すれば、あとはJava仮想マシンが各プラットフォームで実行可能な形式のコード(機械語)に変換して実行します。