JVM 【Java Virtual Machine】 Java仮想マシン / Java VM / Javaバーチャルマシン
概要
JVM(Java Virtual Machine)とは、Javaプログラムを実行するためのソフトウェア。Javaバイトコードで記述されたコンピュータプログラムを解釈し、そのコンピュータで実行可能な形式のコードに変換して実行する。Java言語で開発されたプログラムは、特定の機種やオペレーティングシステム(OS)に依存しない独自形式である「Javaバイトコード」と呼ばれるコード体系のプログラムに変換されて配布される。この形式はどのコンピュータでも直接実行することはできないため、実行時にJVMがその実行環境固有の形式(ネイティブコード)に変換しなおして実行する。
この仕組みにより、Java言語によるプログラムは開発時に各機種・OSに対応したプログラムを用意する必要がなく、一つの形式でJVMの動作する様々な環境に同時に対応することができる。ただし、実行時にコードを変換する処理の分だけ性能が劣化するほか、特定の環境に固有の機能などの利用には一定の制約がある。
JVMやJavaバイトコードはもともとJava言語のために用意されたものだが、Javaの言語仕様そのものとは切り離されており、仕様も公開されているためJVMで実行するJava以外のプログラミング言語や処理系も存在する。
「Scala」や「Clojure」「Groovy」など、JVMで実行することを念頭に設計された専用の言語は「JVM言語」と総称される。他にも、Pythonに対する「JPython」、Rubyに対する「JRuby」など、既存の他の言語をJVM上で実行できるようコードを変換する処理系も存在する。
JVMは開発元の米オラクル(Oracle)社による公式の実装のほか、米IBM社など他社が実装した製品もある。Oracle社の公式JVMはJava実行環境(JRE:Java Runtime Environment)の一部として各種OS向けに無償配布されているほか、公式の開発キットであるJDK(Java Development Kit)などの一部としても配布されている。