LINUX.ORG.RU

tuxguitar не запускается. java.lang.UnsupportedClassVersionError

 ,


0

1

При запуске выдаёт:

Exception in thread "main" java.lang.UnsupportedClassVersionError: org/eclipse/swt/widgets/Display has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0

Пробовал меня версию таким образом (как я понял, нужна версия 11, которая и установилась вместе с пакетом tuxguitar):

# update-alternatives --config java

There is 5 program that provides 'java'.

  Selection    Command
-----------------------------------------------
*  1           java-21-openjdk.x86_64 (/usr/lib/jvm/java-21-openjdk-21.0.4.0.7-2.fc40.x86_64/bin/java)
   2           java-17-openjdk.x86_64 (/usr/lib/jvm/java-17-openjdk-17.0.12.0.7-2.fc40.x86_64/bin/java)
   3           java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.432.b06-3.fc40.x86_64/jre/bin/java)
   4           /usr/lib/jvm/jre-1.7.0-oracle.x86_64/bin/java
 + 5           /usr/lib/jvm/java-11-openjdk/bin/java
$ java -version
openjdk version "11.0.27" 2025-04-15
OpenJDK Runtime Environment (Red_Hat-11.0.27.0.6-1) (build 11.0.27+6)
OpenJDK 64-Bit Server VM (Red_Hat-11.0.27.0.6-1) (build 11.0.27+6, mixed mode)

Ошибка всё та же. Как это вылечить?

Класс org/eclipse/swt/widgets/Display был скомпилирован для Java 11+, а ты его запускаешь через Java 8.

Тебе надо посмотреть, что ты запускаешь. Вероятно это какой-то bash скрипт, который в конечном счёте запускает команду java из какой-то папки с какими-то аргументами. Тебе надо исследовать этот bash скрипт, понять, каким образом он находит путь до этой команды java и почему в твоём случае он находит java 8 вместо java 11.

vbr ★★★★★
()
Ответ на: комментарий от vbr

Да, это действительно bash скрипт, который запускает java по пути:

/usr/lib/jvm/java/bin/java

Заменил как в комментарии выше, заработало.

/usr/lib/jvm/java-11-openjdk/bin/java

Всех благодарю!

Jullyfish
() автор топика
Ответ на: комментарий от Jullyfish

Я бы посоветовал понять, почему у тебя путь /usr/lib/jvm/java указывает на java 8. Вероятно это символическая ссылка и вероятно в Debian есть механизм штатного её изменения. Иначе при следующем обновлении твои правки скрипта затрутся и ошибка вернётся.

vbr ★★★★★
()

update-alternatives

update-java-alternatives

пути мейнтейнеров неисповедимы

anonymous
()
  • Markdown
Пустая строка (два раза Enter) начинает новый абзац. Знак '>' в начале абзаца выделяет абзац курсивом цитирования.
Внимание: прочитайте описание разметки Markdown.
Используйте Ctrl-Enter для размещения комментария