Коротко
Эта ошибка значит, что 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 |
Параметры подмешивает система | Удалить переменную среды |
Общий порядок действий
Если разбираться в каждой строке нет желания, пройдите шаги по порядку — они закрывают почти все случаи:
-
Найдите строку над ошибкой
Откройте журнал запуска и найдите строку
Error: Could not create the Java Virtual Machine. Причина — в строке прямо над ней: например,Invalid maximum heap size: -Xmx4GBилиUnrecognized VM option 'UseConcMarkSweepGC'. -
Верните аргументы JVM по умолчанию
Сотрите всё, что вы добавляли в аргументы JVM сами: флаги из старых гайдов, «оптимизации», скопированные с сайтов. Оставьте только память в виде
-Xmx4G— число и одна латинская буква G или M без пробела. -
Верните встроенную Java
Если в лаунчере указан свой путь к Java, сбросьте его на встроенную. Лаунчер сам подберёт Java под версию: 8 для 1.12.2, 17 для 1.20.1, 21 для 1.21.x, 25 для 26.x.
-
Проверьте переменные среды
Если в журнале есть строка
Picked up _JAVA_OPTIONSилиPicked up JAVA_TOOL_OPTIONS, аргументы подмешивает система. Удалите эти переменные в настройках Windows или в профиле оболочки на macOS и Linux. -
Уменьшите память
При ошибках
Could not reserve enough spaceиInvalid maximum heap sizeна 32-битной Java поставьте 64-битную Java или временно уменьшите-Xmxдо 2–4 ГБ. -
Запустите игру заново
Перезапустите лаунчер и игру. Если ошибка сменилась на другую — это прогресс: разберите новую строку по разделам этого гайда или гайда про вылеты.
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.
-
Узнайте нужную версию
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 нужна».
-
Скачайте 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).
-
Установите и проверьте
Запустите установщик, затем откройте командную строку или терминал и выполните
java -version. В выводе должна быть нужная версия и слова64-Bit Server VM. -
Укажите 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.
