Java Virtual Machine
ソフトウェアだよ
Javaのプログラムを動かすときに必要だよ
「一度書けば、どこでも動く」を実現するための切り札だよ
日本では「Java仮想マシン」や「JavaVM」あるいは「JVM」と表現されるのが一般的だよ
簡単に書くよ
Java Virtual Machine(読:ジャヴァ・バーチャル・マシン)とは
「Java仮想マシン(JavaVM、JVM)」のこと。
用語の中身としては
Javaで作ったプログラムとコンピュータの通訳
です。
もう少し具体的に書くと
Javaの「一度書けば、どこでも動く」の思想を実現するための切り札で、Javaのプログラムを動かすためのソフトウェア
です。
詳しく書くよ
最初に留意事項です。
「Java仮想マシン」や「JavaVM」あるいは「JVM」と言われて「あぁ、アレのことね」と分かる方は最後まで読む必要ありません。
JavaVM(JVM)の正式名称(?)が「Java Virtual Machine」です。
「Java Virtual Machine」を省略したのが「JavaVM(JVM)」ね。
※「Java Virtual Machine」を何となく日本語にすると「Java用のなんちゃってマシン」となります。[詳細]
以上が「Java仮想マシン」とか「JavaVM(JVM)」の意味を知っている人向けの説明です。
「Java仮想マシンとかJavaVM(JVM)って何?美味しいの?」な人は、このまま読み進めてください。
用語の中身について説明します。

それでは、いってみましょう。
まずは予備知識として「プログラミング言語」と「Java」について簡単に説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。
プログラミング言語は「プログラムの元ネタ(ソースコード)を書くときに使う言葉」です。
一般的なプログラムというのは、まず人間語で元ネタを書き、それをコンピュータさんが分かる言葉に翻訳することで完成します。
この「元ネタ」を書くときに使う言語がプログラミング言語です。
Javaは「一度書けば、どこでも動く」の理念で作られたプログラミング言語です。
プログラムの元ネタを書くときに使う言葉のひとつです。
Javaのプログラムは、どんな環境でも動くということに(建前上は)なっています。
ちなみに、Javaが「オブジェクト指向」という用語を世間一般に流行らせました。
以上を踏まえて、本題に入ります。
繰り返しになりますが、Javaには「一度書けば、どこでも動く」な思想があります。
「一度作ったプログラムは、WindowsでもMacでもLinuxでもその他の環境でも動くぜー!」です。
この思想を実現するための切り札で
Javaのプログラムを動かすためのソフトウェア
が「Java Virtual Machine」です。
上でも書きましたが、日本では「Java仮想マシン」や「JavaVM」あるいは「JVM」と表現されるのが一般的です。
※個人的には日本語の方が馴染みがあるので、以降は「Java仮想マシン」と表現します。
文字通り、仮想マシン(コンピュータの中に作られた、なんちゃってコンピュータ)のイメージですね。
コンピュータの中にJavaで作ったプログラムを動かすための仮想環境を作って、プログラムはその中で動かすことで、本来の環境による差を無視できるようにしよう、な狙いです。
例えば、Javaで作ったプログラムがWindowsのパソコン上で動くとしましょう。
このとき、Javaで作ったプログラムは直接Windowsパソコンさんとやり取りをするわけでは ありません。
Java仮想マシンとやり取りをします。
そして、Java仮想マシンがWindowsパソコンさんとやり取りをします。
さて、このJavaで作ったプログラムをMacのパソコンに持っていったとしましょう。
Windowsのパソコンさんで動いていたJavaで作ったプログラムをMacのパソコンさんで動かします。
このときの流れもWindowsパソコンさんのときと同じです。
Javaで作ったプログラムはMacなパソコンさんと直接やり取りしません。
Java仮想マシンとやり取りをします。
そして、Java仮想マシンがMacなパソコンさんとやり取りをします。
どんな環境に持っていこうとも、Javaで作ったプログラムがやり取りする相手はJava仮想マシンさんなのです。
Javaで作ったプログラムはJava仮想マシンさんのことさえ考えていればOKです。
あとのことはJava仮想マシンさんが良しなに取り計らってくれます。
相手がWindowsであればWindowsに合うようにやり取りしてくれますし、相手がMacであればMacに合うようにやり取りしてくれます。
つまり、Java仮想マシンさんはJavaで作ったプログラムとコンピュータの通訳です。
プログラムと環境の間に入って、仲を取り持ってくれます。
Javaで作ったプログラムはJava仮想マシンさんとやり取りするだけなので、どんなコンピュータが相手でも自分を変える必要は ありません。
例えば、Java仮想マシンさんと日本語でお話するのであれば、ひたすら日本語だけを喋れば良いのです。
仮に英語しか分からないパソコン上で動かすときも大丈夫です。
Java仮想マシンさんが英語に翻訳してくれます。
フランス語しか分からないパソコン上で動かすときも大丈夫です。
Java仮想マシンさんがフランス語に翻訳してくれます。
環境による差異はJava仮想マシンさんに吸収してもらうので、プログラム自体は「一度書けば、どこでも動く」ってな理屈です。
実際には、環境によって微妙に動きが変わったりしますけどね。
一言でまとめるよ
まぁ「Java Virtual Machine」って単語が出てきたら「Java仮想マシン
(Javaで作ったプログラムを動かすためのソフトウェア)のことなんだな~」と お考えください。
おまけ
■訳してみるよ
「Java(ジャヴァ)」はプログラミング言語の「Java」です。
「virtual(バーチャル)」の意味は「実質上の」とか「事実上の」とか「実際上の」とかです。
ただし、今回は「仮想の」と解釈してください。
「machine(マシン)」の意味は「機械」とかです。
何となく くっつけると
Javaの仮想の機械
となります。






