Рейтинг:3

Проблемы с обновлением Java в Ubuntu 20.04 для Minecraft 1.18

флаг in

Пытаясь обновить 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$ 
cocomac avatar
флаг cn
Пожалуйста [отредактируйте] свой вопрос, чтобы включить вывод запуска `java -version` в терминале?
neophytte avatar
флаг in
сделано, спасибо...
cocomac avatar
флаг cn
Обратите внимание, что я ошибался, и на самом деле для этого требуется `openjdk-17-jre`.
Рейтинг:7
флаг cn

Minecraft: Java Edition версии 1.18 не будет работать на Java 8. Для этого требуется Java 17. Если Minecraft — единственное, для чего вы используете Java, я бы предложил удалить то, что у вас есть сейчас:

sudo apt удалить default-jre default-jdk
sudo apt автоудаление

Теперь установите OpenJDK 17:

судо подходящее обновление
sudo apt установить openjdk-17-jre

Мы не устанавливаем JDK, потому что он предназначен для компиляции Java-программ. Вы не работаете, вместо этого вы используете один (Minecraft), поэтому вам нужна только JRE.

Версия Майнкрафт Java-версия
1.16 16
1.17 16
1.18 17
neophytte avatar
флаг in
Спасибо, сработало - да, запускайте майнкрафт только там
G Ugauga avatar
флаг pe
Я запускаю java 17 на kubuntu 21.10. Я установил Oracle java, потому что не был уверен, что openjdk в порядке. Теперь благодаря [cocomac] (https://askubuntu.com/users/1438484/cocomac) я это знаю. Я использовал этот метод из [linuxuprising](https://www.linuxuprising.com/2021/09/how-to-install-oracle-java-17-lts-on.html).
cocomac avatar
флаг cn
@GUgauga Рад помочь. Я использую OpenJDK (или в Windows [Adoptium](https://adoptium.net/), который раньше назывался AdoptOpenJDK) для всего, и мне не приходилось использовать Oracle Java годами, так что все будет в порядке. использовать OpenJDK для Minecraft (и многое другое тоже)

Ответить или комментировать

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