Пытаясь обновить Java до последней версии сервера Minecraft (v1.18), у меня была небольшая драма, потому что сервер изначально работал под управлением Ubuntu 19.x, поэтому я перешел на 20.04, найдя место, которое позволяет мне обновить все пакеты и выполнить обновление.
После этого я установил JRE, это та же команда, показывающая версию, в которой я работаю:
mortimer@mineraft:/home/minecraft$ sudo apt-get install default-jre
Чтение списков пакетов... Готово
Построение дерева зависимостей
Чтение информации о состоянии... Готово
default-jre уже является самой новой версией (2:1.11-72).
0 обновлено, 0 установлено заново, 0 удалено и 0 не обновлено.
Аналогично с JDK:
mortimer@mineraft:/home/minecraft$ sudo apt-get install default-jdk
Чтение списков пакетов... Готово
Построение дерева зависимостей
Чтение информации о состоянии... Готово
default-jdk уже является самой новой версией (2:1.11-72).
0 обновлено, 0 установлено заново, 0 удалено и 0 не обновлено.
Запуск обновлений-альтернатив:
mortimer@mineraft:/home/minecraft$ sudo update-alternatives --config java
Есть 4 варианта альтернативного java (предоставление /usr/bin/java).
Статус приоритета пути выбора
--------------------------------------------- ----------
0 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 автоматический режим
1 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 ручной режим
2 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1081 ручной режим
3 /usr/lib/jvm/jdk-16.0.1/bin/java 0 ручной режим
* 4 /usr/local/java/jre1.8.0_311/bin/java 1 ручной режим
Нажмите <enter>, чтобы сохранить текущий выбор[*], или введите номер выбора:
Но если я запускаю команду запуска вопросов и ответов:
mortimer@mineraft:/home/minecraft$ cat start.sh
#!/бин/баш
sudo java -Xmx6G -Xms4G -jar /home/minecraft/spigot-1.18.jar nogui > /dev/console
Я получаю приятную ошибку от сервера:
mortimer@mineraft:/home/minecraft$ sudo ./start.sh
Ошибка: Произошла ошибка JNI, проверьте установку и повторите попытку.
Исключение в потоке "main" java.lang.UnsupportedClassVersionError: org/bukkit/craftbukkit/bootstrap/Main был скомпилирован более новой версией среды выполнения Java (версия файла класса 60.0), эта версия среды выполнения Java распознает только файл класса версии до 52.0
в java.lang.ClassLoader.defineClass1 (собственный метод)
в java.lang.ClassLoader.defineClass(ClassLoader.java:756)
в java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
на java.net.URLClassLoader.defineClass(URLClassLoader.java:473)
на java.net.URLClassLoader.access$100(URLClassLoader.java:74)
на java.net.URLClassLoader$1.run(URLClassLoader.java:369)
на java.net.URLClassLoader$1.run(URLClassLoader.java:363)
в java.security.AccessController.doPrivileged (собственный метод)
на java.net.URLClassLoader.findClass(URLClassLoader.java:362)
в java.lang.ClassLoader.loadClass(ClassLoader.java:418)
на sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355)
в java.lang.ClassLoader.loadClass(ClassLoader.java:351)
на sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:601)
mortimer@mineraft:/home/minecraft$
Может ли кто-нибудь пролить свет на то, что я сделал неправильно?
Спасибо
[править - добавление java -версии]
mortimer@mineraft:/home/minecraft$ java-версия
версия Java "1.8.0_311"
Среда выполнения Java(TM) SE (сборка 1.8.0_311-b11)
Java HotSpot(TM) 64-разрядная виртуальная машина сервера (сборка 25.311-b11, смешанный режим)
mortimer@mineraft:/home/minecraft$