Устранение неполадок UnsupportedClassVersionError в IntelliJ IDEAJAVA

Программисты JAVA общаются здесь
Anonymous
Устранение неполадок UnsupportedClassVersionError в IntelliJ IDEA

Сообщение Anonymous »

Я прохожу курс Java с использованием Intellij IDEA. В этом «Тестовом» проекте у меня есть только два тестовых класса, как показано ниже (в них действительно нет кода).
Прежде чем я перейду к проблеме, мне просто нужно заявить, что все мои проекты работают правильно, просто у меня есть следующая проблема с запуском команды терминала, и я боюсь, что я что-то испортил в своей IDE:

Проблема возникает, когда мне нужно получить последовательную версию класса BankAccount с помощью следующей команды:

E:\Software Projects\Test\out\production\Test>serialver com.company.BankAccount


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

Дополнительное примечание: я также получаю связанную с этой ошибкой ошибку при запуске основного класса в терминале. использование java com.company.Main

Что, по моему мнению, может быть причиной проблемы: еще до того, как я впервые попробовал «serialver», я изменил имя папку проекта (я только что использовал «Переименовать» в проводнике файлов в Windows, и это все испортило в Intellij (какой бы проект я ни открывал, в нем не было ни SDK, ни конфигураций запуска/отладки). Итак, я выбрал «Добавить SDK» в проекте (или чем-то подобном) и выбрал JRE 12 из списка.
Затем я запустил «Основную отладку», и конфигурации запуска/отладки были установлены автоматически.

Когда я перехожу в «Структура проекта» > «Настройки проекта» > «SDK», у меня есть только один SDK: «C:\Program Files\Java\jdk-12.0.1».

Когда я перехожу к «Конфигурациям запуска/отладки» в проекте, в JRE Application > Main мне нужно выбрать следующее (но, насколько я понимаю, это все один и тот же SDK, верно?):< /p>
  • По умолчанию (12 — SDK модуля «Тест»)
  • 12 (версия Java «12.0. 1")
  • "C:\Program Files\Java\jdk-12.0.1"
Значит, я не знаю, как здесь что-то настроить? Как мне вообще удалось скомпилировать эти классы в более новой версии Java Runtime?

Проблема в том, что я не уверен, что-то еще не так, или если предыдущие изменения, которые я внес, что-то напутали.

Классы:

package com.company;

public class Main {

public static void main(String[] args) {
// write your code here
}
}

package com.company;

public class BankAccount {
}


При запуске
E:\Software Projects\Test\out\production\Test>serialver com.company.BankAccount

В терминале я получаю следующую ошибку:

Exception in thread "main" java.lang.UnsupportedClassVersionError: com/company/BankAccount has been compiled by a more recent version of the Java Runtime (class file version 56.
0), this version of the Java Runtime only recognizes class file versions up to 55.0
at java.base/java.lang.ClassLoader.defineClass1(Native Method)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1016)
at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)
at java.base/java.net.URLClassLoader.defineClass(URLClassLoader.java:550)
at java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:458)
at java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:452)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:451)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:588)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:398)
at jdk.compiler/sun.tools.serialver.SerialVer.resolveClass(SerialVer.java:108)
at jdk.compiler/sun.tools.serialver.SerialVer.serialSyntax(SerialVer.java:80)
at jdk.compiler/sun.tools.serialver.SerialVer.main(SerialVer.java:188)


Ошибка при запуске основного класса с помощью E:\Software Projects\Test\out\production\Test>java com.company.Main:

Error: LinkageError occurred while loading main class com.company.Main
java.lang.UnsupportedClassVersionError: com/company/Main has been compiled by a more recent version of the Java Runtime (class file version 56.0), this version of the Java Runtime only recognizes class file versions up to 55.0


Подробнее здесь: https://stackoverflow.com/questions/573 ... ellij-idea

Вернуться в «JAVA»