получить эту ошибку, когда я хочу запустить скомпилированный класс java.lang.UnsupportedClassVersionError

Я использую Fedora 36 и установил java-latest-openjdk-devel (OJDK19) из репозиториев Fedora.

Я написал простой print hello world и назвал его test_for_error следующим образом:

      public class test_for_error {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}

затем я попытался скомпилировать и запустить с помощью команд javac и java

      ➤ javac test_for_error.java 

➤ java test_for_error
Error: LinkageError occurred while loading main class test_for_error
    java.lang.UnsupportedClassVersionError: test_for_error has been compiled by a more recent version of the Java Runtime (class file version 63.0), this version of the Java Runtime only recognizes class file versions up to 61.0

Я ожидал получить привет, мир в качестве вывода, но столкнулся с указанной выше ошибкой.

Где проблема, и как мне ее решить?

1 ответ

Итак, как упомянули друзья, я проверил/сравнил версии javac (JDK) и java (JRE), и, как вы видите, моя система использовала более старую JRE, чем та, которую я установил, и ожидал, что она будет по умолчанию.

      ➤ javac -version
javac 19.0.1

➤ java -version
java 17.0.5

затем я перешел на предпочтительную версию с помощью этой команды:

      sudo update-alternatives --config java

источник:https://www.xmodulo.com/change-default-java-version-linux.html

поэтому я попробовал еще раз и:

      ➤ java test_for_error
Hello, World!
Другие вопросы по тегам