Что такое JVM? Объяснение Java Virtual Machine

JVM выполняет байт-код Java на любой операционной системе. Именно поэтому Minecraft Java Edition и каждый мод Fabric работают одинаково на Windows, macOS и Linux.

Conceptsby trqUpdated June 4, 2026
Key takeaways
  • JVM (Java Virtual Machine) — это программа, которая выполняет скомпилированный Java-байткод.
  • Один и тот же байткод работает на Windows, macOS и Linux, поэтому модам не требуется перекомпиляция.
  • Игрокам нужен Java Runtime Environment (JRE); моддерам — полный JDK с компилятором.
  • Minecraft Java Edition и каждый мод Fabric, включая Opal, работают на JVM.

JVM, или Java Virtual Machine, — это программа, которая запускает Java-код. Вы пишете на Java, компилятор преобразует его в байт-код, а JVM запускает этот байт-код на любой операционной системе. Именно поэтому Minecraft Java Edition и моды, созданные для неё, работают одинаково на Windows, macOS и Linux без перекомпиляции.

Где используется Opal

Opal — это мод для Fabric, поэтому он работает на той же JVM, что и игра. Если вы настраиваете его, руководство по настройке проведет вас через этот процесс.

Что на самом деле делает JVM

JVM выполняет байткод, а не исходный код. Когда вы компилируете программу на Java, вы не получаете исполняемый файл для Windows или Mac. Вы получаете файлы классов, полные байткода — компактного набора инструкций, который понимает JVM. JVM считывает эти инструкции и выполняет их на вашем компьютере.

Именно этот дополнительный слой и является сутью. Один и тот же байткод работает везде, где есть JVM, поэтому "напиши один раз, запускай где угодно" — это краткое объяснение того, почему Java распространилась настолько широко. JVM — это та часть, которая делает это обещание реальным.

JVM, JRE и JDK

Эти три термина часто путают, поэтому вот разделение.

ТерминЧто это такоеКогда это нужно
JVMДвижок, который выполняет байткодВсегда, для запуска любой Java-программы
JREJVM плюс стандартные библиотекиДля запуска Java-программ
JDKJRE плюс компилятор и инструменты разработкиДля создания Java-программ

Игроку нужен только runtime для запуска игры. Разработчику, создающему мод, нужен полный JDK, чтобы сначала скомпилировать Java в байткод.

Как JVM быстро выполняет ваш код

JVM начинает с интерпретации байткода по одной инструкции за раз. Во время выполнения она отслеживает, какие методы вызываются чаще всего. Эти "горячие" пути передаются JIT-компилятору, который преобразует их в машинный код в реальном времени. После "разогрева" самый загруженный код работает почти со скоростью машинного кода.

JVM также управляет памятью за вас. Сборщик мусора освобождает объекты, которые вы больше не используете, поэтому вам не нужно вручную освобождать память, как это делается в C. Это одна из причин, почему Java проста в написании и является распространенным первым языком для моддеров.

Почему это важно для Minecraft

Minecraft Java Edition работает на JVM, а также все утилиты и моды, предназначенные для нее. Собственный код клиента может быть написан на Java, Kotlin или другом языке JVM, поскольку они все компилируются в один и тот же байт-код, который выполняет JVM. Fabric мод распространяется как jar-файл с байт-кодом, загрузчик подключает его к игре при запуске, и JVM выполняет все это как один процесс.

Именно поэтому лаунчеры позволяют настраивать такие параметры, как размер кучи и версия Java. Вы настраиваете JVM, на которой работает игра, а не саму игру.

FAQ