Выбор и смена версии Java

В этой статье мы разберём, как выбрать правильную версию Java для своего сервера и при необходимости сменить её. Бывало такое, что создал чистый новый сервер на 1.16.5, а он не хочет запускаться? Скорее всего, проблема в версии Java.

Какую версию выбрать?

Наш хостинг предоставляет диапазон версий Java на выбор — начиная с Java 8, заканчивая Java 25. Все эти версии требуются для разных версий самой игры Minecraft, и игра может не работать с определёнными версиями.

Например, 1.16.5 поддерживает Java 8 и 11, а более новые версии Java могут отказываться запускать сервер. В таблице ниже мы перечислили версии Java, требуемые для запуска той или иной версии Minecraft.

Версия Java Версия Minecraft
Java 8 Альфа — 1.16.Х
Java 11 1.0 — 1.16.5
Java 16 1.17 — 1.17.1
Java 17 1.18 — 1.20.4
Java 21 1.20.5 — 1.21.11
Java 22 1.21 — 1.21.11
Java 25 Подойдёт для некоторых версий и ядер 1.21.Х, а также 26.Х

Как сменить версию Java в панели управления

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

  1. Выберите нужный сервер.

  2. Перейдите в раздел «Настройки» в боковом меню.

Вкладка «Запуск»

  1. В разделе Образ Docker выберите нужную версию.

  2. Перезапустите сервер, чтобы изменения вступили в силу.

Что делать, если появляется ошибка несовместимости

Если при запуске сервера появляется ошибка вроде этой:

Error: LinkageError occurred while loading main class net.minecraft.server.Main
java.lang.UnsupportedClassVersionError: net/minecraft/server/Main has been compiled
by a more recent version of the Java Runtime (class file version 60.0), this version
of the Java Runtime only recognizes class file versions up to 55.0

— скорее всего, версия Java не совпадает с версией Minecraft. Сверьтесь с таблицей выше и смените образ согласно инструкции.

Владельцы серверов на старых версиях Forge могут сталкиваться с похожей ошибкой:

A problem occurred running the Server launcher.java.lang.reflect.InvocationTargetException
...
Caused by: java.lang.ClassCastException: class jdk.internal.loader.ClassLoaders$AppClassLoader
cannot be cast to class java.net.URLClassLoader

Это значит, что Forge несовместим с вашей версией Java — старые версии Forge работают только с Java 8 и не поддерживают механизмы загрузки классов, появившиеся в Java 9 и выше.

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

Почему лучше использовать современные версии Java?

Современные версии Java намного эффективнее работают с памятью и производительностью сервера Minecraft. Разработчикам плагинов тоже будет приятно: синтаксис стал проще, а возможностей больше.

Возможные проблемы

Не могу выбрать образ

На некоторых серверах, особенно старых, выбор образа может быть недоступен:

Нельзя изменить образ

В таком случае просто напиши в техническую поддержку — мы установим нужную версию Java.