Смена версии JDK | Hosting Superhub - хостинг игровых серверов minecraft

Вики

Смена версии Java (JDK)

По умолчанию для всех Minecraft Java Edition серверов устанавливается Java версии 11. Владельцы серверов с Forge иногда сталкиваются с тем, что их сервера не запускаются, в самом начале выдавая такую ошибку:

A problem occurred running the Server launcher.java.lang.reflect.InvocationTargetException
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at net.minecraftforge.fml.relauncher.ServerLaunchWrapper.run(ServerLaunchWrapper.java:70)
        at net.minecraftforge.fml.relauncher.ServerLaunchWrapper.main(ServerLaunchWrapper.java:34)
Caused by: java.lang.ClassCastException: class jdk.internal.loader.ClassLoaders$AppClassLoader cannot be cast to class java.net.URLClassLoader (jdk.internal.loader.ClassLoaders$AppClassLoader and java.net.URLClassLoader are in module java.base of loader 'bootstrap')
        at net.minecraft.launchwrapper.Launch.<init>(Launch.java:34)
        at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
        ... 6 more

Подобные ошибки говорят о том, что сервер не умеет работать с новыми механизмами загрузки классов, введёнными в Java 9. В любых случаях, когда сервер не запускается с новыми версиями Java, возникает необходимость установить более старую. Клиенты в большинстве случаев могут сделать это сами.

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

Инструкция

  1. Перейдите во вкладку "Запуск" в панели управления сервером

Вкладка "Запуск"

  1. В разделе Docker образ выберите нужную версию. Версии Java 8 соответствует образ quay.io/pterodactyl/core:java, для Java 11 нужно выбрать quay.io/pterodactyl/core:java-11

Всё, версия Java изменена. Для применения изменений необходимо перезагрузить сервер.

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

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

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

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

В таких ситуациях просто обратитесь в техническую поддержку, мы установим нужную версию Java.