Could not create the Java Virtual Machine в Minecraft: что делать

Обновлено 13 минут чтения

Кадр из игры: аметистовая жеода

Коротко

Эта ошибка значит, что Java не смогла даже стартовать, а настоящая причина написана строкой выше: Invalid maximum heap size, Unrecognized VM option, Could not find or load main class и т. п. Чаще всего виноваты лишние или неверные аргументы JVM, 32-битная Java или слишком старая Java для версии игры. Верните аргументы по умолчанию и встроенную Java лаунчера — это решает большинство случаев.

Сообщение Error: Could not create the Java Virtual Machine пугает, но устроено просто: Java отказалась запускаться ещё до того, как дошло дело до Minecraft. Игра тут ни при чём, моды тоже — Java споткнулась о свои параметры запуска. Поэтому и чинится ошибка обычно за пару минут, если знать, куда смотреть.

Ниже — разбор всех частых вариантов: что написано в журнале, что это значит и что сделать. Сообщения в примерах мы воспроизвели на OpenJDK 21, так что текст в вашем журнале будет таким же или очень похожим.

Что значит «Could not create the Java Virtual Machine»

Java Virtual Machine (JVM) — это среда, в которой работает Minecraft Java Edition. Лаунчер запускает её командой с набором параметров: сколько памяти выделить, какой сборщик мусора использовать, где лежат файлы игры. Если какой-то параметр Java не понимает или не может выполнить, она сразу завершается и пишет три строки:

Invalid maximum heap size: -Xmx4GB
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

Последние две строки одинаковые при любой причине. Причина — всегда в строке над ними. В примере это Invalid maximum heap size: память указана в неправильном формате.

В официальном лаунчере такие строки видно в журнале вывода: включите в настройках лаунчера пункт об открытии журнала при запуске Minecraft: Java Edition и запустите игру ещё раз. В NLauncher после неудачного запуска срабатывает «Разбор вылетов»: он сам находит строку с причиной и объясняет её простыми словами.

Шпаргалка по строкам над ошибкой:

Строка в журнале Что случилось Что сделать
Invalid maximum heap size Память указана с ошибкой или 32-битная Java Исправить -Xmx, поставить 64-битную Java
Could not reserve enough space for object heap Java не может занять столько памяти Уменьшить -Xmx, поставить 64-битную Java
Initial heap size set to a larger value… -Xms больше, чем -Xmx Убрать -Xms или сделать его меньше
Unrecognized VM option '…' Флаг не существует или удалён из новой Java Убрать флаг
Unrecognized option: --… Java слишком старая для этой версии игры Запустить на нужной Java
Improperly specified VM option У флага не хватает значения Дописать значение или убрать флаг
Could not find or load main class Лишний «мусор» в аргументах или повреждены файлы Почистить аргументы, переустановить версию
Picked up _JAVA_OPTIONS Параметры подмешивает система Удалить переменную среды

Общий порядок действий

Если разбираться в каждой строке нет желания, пройдите шаги по порядку — они закрывают почти все случаи:

  1. Найдите строку над ошибкой

    Откройте журнал запуска и найдите строку Error: Could not create the Java Virtual Machine. Причина — в строке прямо над ней: например, Invalid maximum heap size: -Xmx4GB или Unrecognized VM option 'UseConcMarkSweepGC'.

  2. Верните аргументы JVM по умолчанию

    Сотрите всё, что вы добавляли в аргументы JVM сами: флаги из старых гайдов, «оптимизации», скопированные с сайтов. Оставьте только память в виде -Xmx4G — число и одна латинская буква G или M без пробела.

  3. Верните встроенную Java

    Если в лаунчере указан свой путь к Java, сбросьте его на встроенную. Лаунчер сам подберёт Java под версию: 8 для 1.12.2, 17 для 1.20.1, 21 для 1.21.x, 25 для 26.x.

  4. Проверьте переменные среды

    Если в журнале есть строка Picked up _JAVA_OPTIONS или Picked up JAVA_TOOL_OPTIONS, аргументы подмешивает система. Удалите эти переменные в настройках Windows или в профиле оболочки на macOS и Linux.

  5. Уменьшите память

    При ошибках Could not reserve enough space и Invalid maximum heap size на 32-битной Java поставьте 64-битную Java или временно уменьшите -Xmx до 2–4 ГБ.

  6. Запустите игру заново

    Перезапустите лаунчер и игру. Если ошибка сменилась на другую — это прогресс: разберите новую строку по разделам этого гайда или гайда про вылеты.

Invalid maximum heap size: неверный -Xmx

Параметр -Xmx задаёт, сколько оперативной памяти можно занять игре. Java строга к его формату: число и сразу одна латинская буква — G для гигабайт или M для мегабайт.

Так правильно Так Java не поймёт
-Xmx4G -Xmx4GB — лишняя буква B
-Xmx4096M -Xmx4,5G — дробное число с запятой
-Xmx6G -Xmx4Г — русская буква «Г» вместо латинской
-Xmx3584M -Xmx 4G — пробел после -Xmx

Если нужно «четыре с половиной гигабайта», пишите в мегабайтах: -Xmx4608M.

Вторая причина — 32-битная Java. Она физически не может адресовать много памяти, и на -Xmx8G отвечает так:

Invalid maximum heap size: -Xmx8G
The specified size exceeds the maximum representable size.

Строка exceeds the maximum representable size — верный признак 32-битной Java. Решение — поставить 64-битную (о ней ниже) или вернуть встроенную Java лаунчера.

Could not reserve enough space for object heap

Это сообщение выглядит так:

Error occurred during initialization of VM
Could not reserve enough space for 4194304KB object heap

Java не смогла зарезервировать столько памяти, сколько вы попросили. Бывает в двух случаях: у вас 32-битная Java (больше примерно полутора гигабайт она не возьмёт), или вы выделили игре почти всю память компьютера, а свободной её сейчас меньше. Уменьшите -Xmx — например, до половины объёма оперативной памяти — и закройте браузер и другие тяжёлые программы. Сколько памяти давать ванили и сборкам, мы разобрали в гайде «Сколько памяти выделять Minecraft».

Похожая ошибка — Initial heap size set to a larger value than the maximum heap size. Она значит, что стартовый объём -Xms больше потолка -Xmx, например -Xms8G -Xmx4G. Для игры -Xms не нужен вовсе: уберите его или сделайте не больше -Xmx.

Unrecognized VM option и Unrecognized option

Две похожие строки с разными причинами.

Unrecognized VM option 'UseConcMarkSweepGC' — Java не знает такого флага. Чаще всего это наследство старых гайдов «как поднять FPS»: сборщик мусора CMS, который включал этот флаг, удалили из Java ещё в версии 14. На Java 8 для 1.12.2 флаг работал, а на Java 17 и 21 игра с ним уже не стартует. Ещё одна частая причина — опечатка. Новые версии Java даже подсказывают:

Unrecognized VM option 'UseG1Gc'
Did you mean '(+/-)UseG1GC'?

Решение простое: удалите флаг из аргументов JVM. Если хотите тонкую настройку сборщика мусора — берите современные наборы флагов под свою версию Java, а не списки десятилетней давности.

Unrecognized option: --add-opens или Unrecognized option: --sun-misc-unsafe-memory-access=allow — это уже не ваша ошибка. Такие параметры добавляет сама версия игры, а Java оказалась слишком старой, чтобы их понять. Первый вариант — игра 1.17 или новее запускается на Java 8. Второй мы видели сами, когда запускали 26.2 на Java 21: этой версии нужна Java 25. Решение — запустить игру на той Java, которую она требует. Таблица соответствия — в гайде «Какая Java нужна для Minecraft».

Improperly specified VM option 'MaxGCPauseMillis' — флаг написан без значения, например -XX:MaxGCPauseMillis вместо -XX:MaxGCPauseMillis=50. Допишите значение или удалите флаг.

Error: Could not find or load main class

Java воспринимает первое «слово» без дефиса в начале как название программы, которую нужно запустить. Если в аргументы JVM попало что-то лишнее, Java пытается найти программу с таким названием и не находит:

Error: Could not find or load main class Xmx4G
Caused by: java.lang.ClassNotFoundException: Xmx4G

Что обычно виновато:

  • забыт дефис — Xmx4G вместо -Xmx4G;
  • длинное тире вместо дефиса — –Xmx4G. Так бывает, если скопировать аргументы с сайта или из мессенджера: текст выглядит правильно, но первый символ другой;
  • пробел внутри флага — - Xmx4G;
  • кавычки вокруг всей строки аргументов.

Если в строке указано не ваше слово, а net.minecraft.client.main.Main или класс загрузчика (Forge, Fabric, NeoForge), значит, повреждены или не докачаны файлы игры. Переустановите эту версию или сборку: в NLauncher «Разбор вылетов» предложит перекачать повреждённые файлы сам.

«Java не найдена» и «java не является внутренней командой»

Здесь Java не падает — её просто нет там, где её ищут. Варианты:

  • В лаунчере указан путь к Java, которой больше нет. Вы удалили или обновили Java, а путь в настройках остался старым. Сбросьте его на встроенную Java.
  • Антивирус удалил файлы Java из папки лаунчера. Добавьте папку лаунчера в исключения и дайте ему скачать Java заново.
  • Вы запускаете .jar-файл: установщик Forge или NeoForge, server.jar. Такие файлы запускает системная Java, а её может не быть. На Windows это выглядит как сообщение "java" не является внутренней или внешней командой, исполняемой программой или пакетным файлом или как вопрос «Каким приложением открыть этот файл?». Решение — установить Java вручную по шагам ниже.

Если Java установлена, но команда java всё равно не находится, при установке Temurin проверьте, что включён компонент «Add to PATH» (он включён по умолчанию) — или запускайте Java полным путём, например "C:\Program Files\Eclipse Adoptium\jdk-21…\bin\java.exe" -jar server.jar. Точное название папки посмотрите в проводнике: оно содержит полный номер версии.

Переменные JAVA_TOOL_OPTIONS и _JAVA_OPTIONS

Иногда аргументы JVM подмешивает не лаунчер, а система. Java читает две переменные среды — JAVA_TOOL_OPTIONS и _JAVA_OPTIONS — и добавляет их содержимое к параметрам любого запуска. Узнать об этом можно по строке в самом начале журнала:

Picked up _JAVA_OPTIONS: -Xmx1G

С _JAVA_OPTIONS связан коварный эффект: её значения важнее параметров командной строки. Мы проверили на OpenJDK 21: при _JAVA_OPTIONS=-Xmx1G и -Xmx2G в команде Java берёт 1 ГБ. То есть вы выставляете в лаунчере 6 ГБ, а игра получает то, что когда-то прописала другая программа. А если в переменной ошибка — например, -Xmx4GB, — падает вообще любая Java-программа на компьютере.

Как убрать:

  • Windows. Пуск → введите «переменные среды» → «Изменение системных переменных среды» → «Переменные среды». Найдите _JAVA_OPTIONS или JAVA_TOOL_OPTIONS в верхнем (пользовательском) и нижнем (системном) списке, удалите и перезапустите лаунчер.
  • macOS и Linux. Выполните в терминале echo $_JAVA_OPTIONS $JAVA_TOOL_OPTIONS. Если что-то вывелось, найдите строку export _JAVA_OPTIONS=… в ~/.zshrc, ~/.bashrc, ~/.profile или /etc/environment и удалите её, затем перезайдите в систему.

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

Как понять, что Java 32-битная

Выполните в командной строке java -version — или посмотрите начало журнала запуска игры. У 64-битной Java в выводе есть 64-Bit Server VM:

openjdk version "21.0.12.1" 2026-08-18
OpenJDK Runtime Environment (build 21.0.12.1+1-1-24.04.4-Ubuntu)
OpenJDK 64-Bit Server VM (build 21.0.12.1+1-1-24.04.4-Ubuntu, mixed mode, sharing)

Это вывод OpenJDK 21 из пакетов Ubuntu; у Temurin и других сборок строки чуть другие, но 64-Bit Server VM есть у всех 64-битных.

Если там написано Client VM или просто Server VM без 64-Bit, Java 32-битная. Ещё одна подсказка на Windows — путь с Program Files (x86): туда ставятся 32-битные программы.

32-битная Java — частая причина проблем со старыми сборками на 1.12.2: когда-то с java.com по умолчанию скачивалась именно она. Minecraft начиная с 1.20.5 требует 64-битную систему и Java, а на 32-битной Java не получится выделить даже 2 ГБ, которые нужны современной игре. Если ваша Windows сама 32-битная, играть в новые версии на этом компьютере не выйдет.

Как поставить нужную Java вручную

Для игры в лаунчере ставить Java обычно не нужно — и официальный лаунчер, и NLauncher скачивают её сами под каждую версию. Вручную Java нужна для сервера, для запуска установщиков .jar и если вы хотите указать лаунчеру свою Java. Берите бесплатные сборки OpenJDK с официальных сайтов:

  • Eclipse Temurin — adoptium.net: версии 8, 11, 17, 21 и 25, для Windows, macOS и Linux;
  • Microsoft Build of OpenJDK — learn.microsoft.com: версии 11, 17, 21 и 25. Java 8 Microsoft не выпускает и сама отправляет за ней на Temurin.
  1. Узнайте нужную версию

    Java 8 — для Minecraft до 1.16.5, Java 17 — для 1.18–1.20.4, Java 21 — для 1.20.5–1.21.11, Java 25 — для 26.1 и новее. Полная таблица — в гайде «Какая Java нужна».

  2. Скачайте 64-битный установщик

    Возьмите Eclipse Temurin с adoptium.net (есть 8, 11, 17, 21 и 25) или Microsoft Build of OpenJDK (11, 17, 21, 25). Для Windows выберите x64 и формат .msi, для Mac — .pkg под Apple Silicon (aarch64) или Intel (x64).

  3. Установите и проверьте

    Запустите установщик, затем откройте командную строку или терминал и выполните java -version. В выводе должна быть нужная версия и слова 64-Bit Server VM.

  4. Укажите Java там, где она нужна

    В лаунчере — в поле пути к Java, для сервера — полным путём в команде запуска. Для обычной игры в лаунчере это делать не обязательно: он скачивает Java сам.

Где аргументы JVM в лаунчерах

Официальный Minecraft Launcher. Вкладка «Установки» (Installations) → «…» у нужной установки → «Изменить» (Edit) → «Больше параметров» (More options). Там два поля: исполняемый файл Java (Java executable) — по умолчанию встроенная Java — и аргументы JVM (JVM arguments). Если сомневаетесь в своих правках, создайте новую установку: у неё будут значения по умолчанию.

NLauncher. Java здесь по умолчанию подбирается сама: в «Настройках» в пункте Java стоит «встроенная (рекомендуется)», а свой путь лаунчер использует, только если эта Java подходит выбранной версии игры. Так что ошибки из-за слишком старой Java здесь редки. Рядом есть поле «Дополнительные флаги JVM» — они добавляются к встроенным; если не знаете, зачем оно вам, оставьте его пустым. Память задаётся ползунком «Оперативная память», без ручного -Xmx. А если игра всё-таки не запустилась, «Разбор вылетов» распознаёт неверные флаги, 32-битную Java и неподходящую версию Java и для последних двух предлагает поставить нужную одной кнопкой.

Другие ошибки, которые возникают уже после старта Java, — в гайдах «Minecraft вылетает: частые ошибки» и «Exit code в Minecraft».

Частые вопросы

Что значит «Error: A fatal exception has occurred. Program will exit»?

Это вторая половина той же ошибки: Java не запустилась и завершилась. Сама по себе строка причину не называет — ищите строку выше, над Could not create the Java Virtual Machine.

Нужно ли удалять все версии Java с компьютера?

Нет. Несколько версий Java спокойно живут рядом. Лаунчер запускает игру на той, что подходит версии, а системная Java по умолчанию (которую показывает java -version) важна только для серверов и установщиков в формате .jar.

Сколько памяти можно указать в -Xmx?

На 64-битной Java — сколько позволяет компьютер, но разумно 2–4 ГБ для ванили и 6–8 ГБ для больших сборок, оставляя системе 3–4 ГБ. На 32-битной Java больше примерно 1–1,5 ГБ не получится. Подробно — в гайде «Сколько памяти выделять».

Я ничего не менял, а ошибка появилась. Почему?

Частые причины — обновление игры до версии, которой нужна более новая Java, программа, которая прописала переменную _JAVA_OPTIONS, или антивирус, удаливший файлы Java. Проверьте журнал: строка над ошибкой подскажет, какой из вариантов ваш.

Какие аргументы JVM стоят в официальном лаунчере по умолчанию?

Обычно -Xmx2G -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=50 -XX:G1HeapRegionSize=32M. Если вы их испортили, проще всего создать новую установку — у неё будут аргументы по умолчанию.

Помогает ли переустановка Java с java.com?

Редко. Лаунчер обычно запускает игру не на системной Java, а на своей. Переустановка поможет, только если в лаунчере вручную указан путь к повреждённой или 32-битной Java — но проще сбросить этот путь на встроенную.

Скачать NLauncher

Бесплатный лаунчер Minecraft Java, без рекламы. Файлы — с официального сайта nlauncher.net.

  • Java для каждой версии ставится сама
  • Forge, Fabric, NeoForge и OptiFine — выбором в списке
  • Моды, шейдеры и сборки из Modrinth и CurseForge
  • Вход через аккаунт Microsoft или NLauncher ID

NLauncher работает на компьютере. На телефоне Minecraft Java не запустить — отправьте ссылку себе и скачайте лаунчер на Windows, macOS или Linux.

Отправить ссылку себе

Для Ubuntu, Debian и Mint есть пакет NLauncher-latest.deb (19,2 МБ). Все сборки и требования — на nlauncher.net/download.