Ошибка «Java version mismatch»: как обновить Java и выбрать правильную версию для сервера
Введение: не та Java — не тот сервер
Ошибка «java.lang.UnsupportedClassVersionError» или «has been compiled by a more recent version of Java» появляется при попытке запустить сервер Minecraft на неподходящей версии Java. Современные версии Minecraft (1.18+) требуют Java 17 или новее. Старые (1.16.5 и ниже) требуют Java 8. Запуск сервера 1.20 на Java 8 приведёт к мгновенному крашу. В этом гайде — как установить правильную Java и переключаться между версиями.
Какая версия Java нужна для вашей версии Minecraft
| Версия Minecraft | Требуемая Java | Рекомендуемая Java |
|---|---|---|
| 1.20.5+ (1.21 и новее) | Java 21 | Java 21 LTS |
| 1.18 — 1.20.4 | Java 17 | Java 17 LTS |
| 1.17 | Java 16 | Java 17 (совместима) |
| 1.12 — 1.16.5 | Java 8 | Java 8 Update 311+ |
| 1.7.10 и ниже | Java 7 | Java 8 (совместима) |
Важно: Java 17 и Java 21 — это LTS-версии (Long Term Support). Используйте именно их, а не промежуточные версии (Java 18, 19, 20), которые уже не поддерживаются.
Шаг 1: Проверка текущей версии Java
Откройте командную строку (Win+R → cmd) и введите:
java -version
Вы увидите что-то вроде: openjdk version "17.0.9" 2023-10-17 LTS. Если версия ниже требуемой — нужно обновить.
Шаг 2: Установка правильной версии Java
Windows
- Скачайте Java с официального сайта Oracle (oracle.com/java) или OpenJDK (adoptium.net).
- Выберите версию: Java 21 для новейших серверов, Java 17 для большинства серверов 1.18-1.20.
- Установите, следуя инструкциям установщика. Запомните путь установки.
- Настройте переменную окружения JAVA_HOME: Панель управления → Система → Дополнительные параметры → Переменные среды → Создать (или изменить) переменную
JAVA_HOMEсо значением пути к папке Java (например,C:Program FilesJavajdk-17). - Добавьте
%JAVA_HOME%inв переменнуюPath. - Перезагрузите компьютер или перезапустите консоль.
Linux (Ubuntu/Debian)
sudo apt update
sudo apt install openjdk-17-jdk-headless # для Java 17
sudo apt install openjdk-21-jdk-headless # для Java 21
Шаг 3: Переключение между версиями Java
Если у вас несколько версий Java (например, Java 8 для старых серверов и Java 17 для новых), вы можете указать конкретную версию в скрипте запуска.
Windows (start.bat)
Укажите полный путь к нужной Java:
"C:Program FilesJavajdk-17injava.exe" -Xmx4G -Xms4G -jar server.jar nogui
Linux
Используйте update-alternatives:
sudo update-alternatives --config java
Выберите нужную версию из списка.
Шаг 4: Решение ошибки «UnsupportedClassVersionError»
Если сервер уже запущен, но вы видите эту ошибку при использовании плагинов или модов — значит, плагин скомпилирован для более новой Java, чем та, на которой запущен сервер.
Решение:
- Обновите Java на сервере до версии, требуемой плагином.
- Или скачайте более старую версию плагина, скомпилированную для вашей Java.
Типичные ошибки
- Установили JRE вместо JDK. Для сервера достаточно JRE (Java Runtime Environment). JDK (Java Development Kit) нужен только для разработки плагинов. Но если у вас JDK — это тоже работает.
- Не изменили PATH. Система продолжает использовать старую Java. Проверьте
java -versionпосле установки. - Используют 32-битную Java на 64-битной системе. 32-битная Java ограничена 1.5 ГБ памяти. Всегда используйте 64-битную версию.
💡 Совет профи
Используйте менеджер версий Java — SDKMAN! (Linux/Mac) или jabba (Windows). Они позволяют установить несколько версий Java и переключаться между ними одной командой: sdk use java 17.0.9-tem. Это незаменимо, если вы администрируете несколько серверов разных версий Minecraft на одной машине.
💬 Комментарии (0)
🔒 Войдите, чтобы оставить комментарий
😊 Пока нет комментариев. Будьте первым!