JVMとは?Java仮想マシン解説

JVMは、あらゆるオペレーティングシステム上でJavaバイトコードを実行します。Minecraft Java EditionやFabricのすべてのMODが、Windows、macOS、Linuxで同じように動作する理由はこれによります.

Conceptsby trqUpdated June 4, 2026
Key takeaways
  • JVM(Java Virtual Machine)は、コンパイルされたJavaバイトコードを実行するプログラムです。
  • 同じバイトコードがWindows、macOS、Linux上で動作するため、modは再コンパイルする必要がありません。
  • プレイヤーはJavaランタイム(JRE)を必要としますが、modderはコンパイラ付きのフルJDKが必要です。
  • Minecraft Java Editionと、Opalを含むすべてのFabric modは、JVM上で動作します.

JVM、またはJava仮想マシンは、Javaコードを実行するプログラムです。Javaでコードを書くと、コンパイラがそれをバイトコードに変換し、JVMがどのオペレーティングシステム上でもそのバイトコードを実行します。そのため、Minecraft Java版とそれに作られたMODは、Windows、macOS、Linux上で再コンパイルなしに同じように動作します.

どこ Opal 合う

OpalはFabricのModなので、ゲームと同じJVM上で動作します。セットアップについては、セットアップガイドを参照してください

JVMが実際に何をしているか

JVMは、ソースコードではなくバイトコードを実行します。Javaプログラムをコンパイルすると、WindowsやMacの実行ファイルが得られるわけではありません。JVMが理解できる、コンパクトな命令セットであるバイトコードでいっぱいのクラスファイルが得られます。JVMはこれらの命令を読み込み、あなたのマシン上で実行します。

その余分なレイヤーがポイントです。同じバイトコードはJVMが存在する場所ならどこでも実行されるため、「一度書けばどこでも実行できる」ということが、Javaが広く普及した理由の短縮版です。JVMは、その約束を叶える部分です。

JVM、JRE、JDK

これらの3つの用語は混同されがちなので、以下に分類を示します。

用語概要必要なタイミング
JVMバイトコードを実行するエンジンどんなJavaプログラムを実行するにも必須
JREJVMに標準ライブラリを追加したものJavaプログラムを実行する際に必要
JDKJREにコンパイラや開発ツールを追加したものJavaプログラムを開発する際に必要

ゲームを起動するには、ランタイムだけあれば十分です。Modを開発する開発者は、まずJavaをバイトコードにコンパイルするために、フルJDKが必要になります。

JVMがあなたのコードを高速に実行する方法

JVMはまず、バイトコードを1つ1つの命令ずつ解釈することから始めます。実行中に、どのメソッドが最も頻繁に呼び出されるかを監視します。これらのホットパスはJITコンパイラに渡され、その場でネイティブのマシンコードに変換されます。ウォームアップ後、最も頻繁に実行されるコードは、ネイティブに近い速度で実行されます.

JVMはメモリの管理もあなたのために行います。ガベージコレクタが、あなたが使用しなくなったオブジェクトを回収するため、Cのように手動でメモリを解放する必要はありません。このことが、Javaが書きやすく、モッダーにとって最初の言語として一般的な理由の一つです。

Minecraftにとってなぜそれが重要なのか

Minecraft Java EditionはJVM上で動作し、それをターゲットとするすべてのユーティリティクライアントやMODも同様です。クライアント自身のコードは、Java、Kotlin、または他のJVM言語で記述できます。なぜならそれらはすべてJVMが実行する同じバイトコードにコンパイルされるからです。 FabricのMODは、バイトコードのJARファイルとして配布され、ローダーがゲーム起動時にそれをゲームに組み込み、JVMがそのすべてを1つのプロセスとして実行します。

これが、ランチャーでヒープサイズや使用するJavaのバージョンを調整できる理由でもあります。ゲーム自体ではなく、ゲームをホストするJVMを設定しているのです。

FAQ