「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

Java Virtual Machine

pointこの用語のポイント

pointソフトウェアだよ

pointJavaのプログラムを動かすときに必要だよ

point「一度書けば、どこでも動く」を実現するための切り札だよ

point日本では「Java仮想マシン」や「JavaVM」あるいは「JVM」と表現されるのが一般的だよ

スポンサーリンク

簡単に書くよ

Java Virtual Machine(読:ジャヴァ・バーチャル・マシン)とは

「Java仮想マシン(JavaVM、JVM)」のこと。
用語の中身としては

Javaで作ったプログラムとコンピュータの通訳
です。
もう少し具体的に書くと

Javaの「一度書けば、どこでも動く」の思想を実現するための切り札で、Javaのプログラムを動かすためのソフトウェア
です。


image piyo

詳しく書くよ

最初に留意事項です。
Java仮想マシン」や「JavaVM」あるいは「JVM」と言われて「あぁ、アレのことね」と分かる方は最後まで読む必要ありません。
JavaVM(JVM)の正式名称(?)が「Java Virtual Machine」です。
Java Virtual Machine」を省略したのが「JavaVM(JVM)」ね。

Java Virtual Machine(ジャヴァ・バーチャル・マシン)

※「Java Virtual Machine」を何となく日本語にすると「Java用のなんちゃってマシン」となります。[詳細]

以上が「Java仮想マシン」とか「JavaVM(JVM)」の意味を知っている人向けの説明です。

「Java仮想マシンとかJavaVM(JVM)って何?美味しいの?」な人は、このまま読み進めてください。
用語の中身について説明します。

ちょっと休憩4

それでは、いってみましょう。
まずは予備知識として「プログラミング言語」と「Java」について簡単に説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。

プログラミング言語は「プログラムの元ネタソースコードを書くときに使う言葉」です。

一般的なプログラムというのは、まず人間語で元ネタを書き、それをコンピュータさんが分かる言葉に翻訳することで完成します。

Java Virtual Machine(ジャヴァ・バーチャル・マシン)2

この「元ネタ」を書くときに使う言語がプログラミング言語です。

Java Virtual Machine(ジャヴァ・バーチャル・マシン)3

Javaは「一度書けば、どこでも動く」の理念で作られたプログラミング言語です。
プログラムの元ネタを書くときに使う言葉のひとつです。

Java Virtual Machine(ジャヴァ・バーチャル・マシン)4

Javaのプログラムは、どんな環境でも動くということに(建前上は)なっています。

Java Virtual Machine(ジャヴァ・バーチャル・マシン)5

ちなみに、Javaが「オブジェクト指向」という用語を世間一般に流行らせました。

以上を踏まえて、本題に入ります。

繰り返しになりますが、Javaには「一度書けば、どこでも動く」な思想があります。
「一度作ったプログラムは、WindowsでもMacでもLinuxでもその他の環境でも動くぜー!」です。

この思想を実現するための切り札で

Javaのプログラムを動かすためのソフトウェア

が「Java Virtual Machine」です。
上でも書きましたが、日本では「Java仮想マシン」や「JavaVM」あるいは「JVM」と表現されるのが一般的です。
※個人的には日本語の方が馴染みがあるので、以降は「Java仮想マシン」と表現します。

文字通り、仮想マシン(コンピュータの中に作られた、なんちゃってコンピュータ)のイメージですね。
コンピュータの中にJavaで作ったプログラムを動かすための仮想環境を作って、プログラムはその中で動かすことで、本来の環境による差を無視できるようにしよう、な狙いです。

例えば、Javaで作ったプログラムがWindowsのパソコン上で動くとしましょう。
このとき、Javaで作ったプログラムは直接Windowsパソコンさんとやり取りをするわけでは ありません。
Java仮想マシンとやり取りをします。
そして、Java仮想マシンがWindowsパソコンさんとやり取りをします。

Java Virtual Machine(ジャヴァ・バーチャル・マシン)6

さて、このJavaで作ったプログラムをMacのパソコンに持っていったとしましょう。
Windowsのパソコンさんで動いていたJavaで作ったプログラムをMacのパソコンさんで動かします。

このときの流れもWindowsパソコンさんのときと同じです。
Javaで作ったプログラムはMacなパソコンさんと直接やり取りしません。
Java仮想マシンとやり取りをします。
そして、Java仮想マシンがMacなパソコンさんとやり取りをします。

Java Virtual Machine(ジャヴァ・バーチャル・マシン)7

どんな環境に持っていこうとも、Javaで作ったプログラムがやり取りする相手はJava仮想マシンさんなのです。
Javaで作ったプログラムはJava仮想マシンさんのことさえ考えていればOKです。

あとのことはJava仮想マシンさんが良しなに取り計らってくれます。
相手がWindowsであればWindowsに合うようにやり取りしてくれますし、相手がMacであればMacに合うようにやり取りしてくれます。

つまり、Java仮想マシンさんはJavaで作ったプログラムとコンピュータの通訳です。
プログラムと環境の間に入って、仲を取り持ってくれます。

Javaで作ったプログラムはJava仮想マシンさんとやり取りするだけなので、どんなコンピュータが相手でも自分を変える必要は ありません。
例えば、Java仮想マシンさんと日本語でお話するのであれば、ひたすら日本語だけを喋れば良いのです。

Java Virtual Machine(ジャヴァ・バーチャル・マシン)8

仮に英語しか分からないパソコン上で動かすときも大丈夫です。
Java仮想マシンさんが英語に翻訳してくれます。

Java Virtual Machine(ジャヴァ・バーチャル・マシン)9

フランス語しか分からないパソコン上で動かすときも大丈夫です。
Java仮想マシンさんがフランス語に翻訳してくれます。

Java Virtual Machine(ジャヴァ・バーチャル・マシン)10

環境による差異はJava仮想マシンさんに吸収してもらうので、プログラム自体は「一度書けば、どこでも動く」ってな理屈です。

実際には、環境によって微妙に動きが変わったりしますけどね。


image piyo2

一言でまとめるよ

まぁ「Java Virtual Machine」って単語が出てきたら「Java仮想マシン(Javaで作ったプログラムを動かすためのソフトウェア)のことなんだな~」と お考えください。

一番上に戻るよ
スポンサーリンク
書籍画像058
書籍画像056

おまけ

■訳してみるよ

「Java(ジャヴァ)」はプログラミング言語の「Java」です。
「virtual(バーチャル)」の意味は「実質上の」とか「事実上の」とか「実際上の」とかです。
ただし、今回は「仮想の」と解釈してください。
「machine(マシン)」の意味は「機械」とかです。
何となく くっつけると

Javaの仮想の機械

となります。




書籍画像
わわわ説明術コラム
宣伝だよ
「分かった!」と思わせる説明の技術 知識ゼロの相手にも伝わるようになる本【Audible】
優れたエンジニアがコミュニティの中でしていること
7日間でハッキングをはじめる本 TryHackMeを使って身体で覚える攻撃手法と脆弱性