UnsupportedClassVersionError: какая Java нужна
Также доступно на: English
Сервер не запускается с ошибкой UnsupportedClassVersionError или A JNI error has occurred? Почти всегда это значит одно: у тебя не та версия Java. Серверу нужна более новая Java, чем установлена. Разберём, какая Java нужна и как поставить правильную.
В логах ошибка выглядит так:
Error: A JNI error has occurred, please check your installation and try again
java.lang.UnsupportedClassVersionError: net/minecraft/server/Main has been compiled by a
more recent version of the Java Runtime (class file version 65.0), this version of the
Java Runtime only recognizes class file versions up to 61.0
Что значит ошибка
Ядро сервера собрано под более новую Java, чем установлена у тебя. В тексте ошибки есть подсказка: class file version 65.0 — это Java 21, а up to 61.0 — установлена Java 17. Значит, нужно поставить Java новее.
Какая Java нужна под версию Minecraft
| Версия Minecraft | Версия Java |
|---|---|
| 1.16.5 и старше | Java 8 |
| 1.17.x | Java 16 (подойдёт и 17) |
| 1.18 – 1.20.4 | Java 17 |
| 1.20.5 и новее (1.21+) | Java 21 |
Для очень старых модовых сборок иногда нужна именно Java 8 — даже если ставишь новее, держи 8-ю под рукой.
Как поставить нужную Java
-
Установи нужную версию. Быстрый способ на Windows — через
winget:winget install Amazon.Corretto.22.JDKЗамени число на нужную версию:
Amazon.Corretto.21.JDK(для 1.21+),Amazon.Corretto.17.JDK(1.18–1.20.4),Amazon.Corretto.8.JDK(старые версии). Или скачай Eclipse Temurin с сайта Adoptium. -
Проверь установленную версию:
java -version -
Перезапусти сервер.
Если в системе несколько версий Java, сервер может запускаться не той. Указывай нужную
java.exeв скрипте запуска — или доверь это ProximaClient.
Через ProximaClient — Java ставится сама
ProximaClient сам ставит нужную версию Java под выбранную версию Minecraft — ошибка с версией просто не возникает. А если потребуется, версию Java можно сменить вручную в «Параметрах запуска» сервера.
Частые вопросы
Как узнать установленную версию Java? Команда java -version в командной строке.
Что за «class file version» в ошибке? Это внутренний номер версии Java: 52 → Java 8, 55 → 11, 61 → 17, 65 → 21. Сравни с числом из ошибки.
Поставил новую Java, а ошибка осталась. Скорее всего сервер запускается старой Java (их в системе несколько). Укажи путь к нужной java.exe в скрипте запуска или используй ProximaClient.
Ошибка наоборот — Java слишком новая? Старые ядра (под 1.8–1.12) лучше запускать на Java 8: на свежей Java они могут не работать.
Проще — через ProximaClient
Не хочешь разбираться с версиями Java — ProximaClient ставит нужную автоматически и даёт сменить её в пару кликов. Если только создаёшь сервер, начни с гайда Как создать сервер Minecraft на своём ПК. Скачать для Windows →