Как запустить код Java 11 в Intellij и решить java.lang.UnsupportedClassVersionError - PullRequest
2 голосов
/ 20 июня 2019

Это продолжение моего этого вопроса. Мне удалось запустить intellij, но я не могу запустить код внутри intellij,

Ниже приведены шаги, которые яя делаю.

  1. Изменены настройки уровня проекта для использования JDK 11.
  2. Использование конфигурации запуска в IntelliJ для запуска кода.

Затем, Я получаю следующую ошибку:

java.lang.UnsupportedClassVersionError: co / SuspendableRunnable был скомпилирован более поздней версией Java Runtime (версия файла класса 54.0), этой версией Java Runtimeраспознает только версии файлов классов до 52.0

Я не хочу запускать код из командной строки, так как по умолчанию мой JDK установлен на использование 8, и я не хочу менять это на11, так как большая часть моего проекта использует 8, и я могу установить его JDK 11 при запуске с помощью команды, но тогда это будет громоздко, и я потеряю хорошую функцию IntelliJ.

1 Ответ

2 голосов
/ 20 июня 2019

Проблема связана с версией SDK проекта, давайте сначала поймем, что означает эта ОШИБКА

Сообщение об ошибке дает вам некоторую подсказку, что класс был скомпилирован более поздней версией Java Runtime (версия файла класса 54.0), эта версия Java Runtime распознает только версии файла класса до 52.0

Вы можете проверить версии java-классов различных JDK , как проверить версию jdk, использованную для компиляции файла .class Как вы можете видеть, Java 10 использует основную версию 55, которая является версией вашего класса, которая вызвала эту ошибку, и вы также подтвердили, что это сторонний класс, который также не поддерживает JDK 8, а Jar не делает содержит исходный код, чтобы он не компилировался снова. Теперь вы просто устанавливаете уровень языка в IntelliJ на 11, это означает, что JDK поддерживает поддержку кода в редакторе, подробнее об этом здесь Что такое уровень языка проекта в IntelliJ IDEA?

Но вы не изменили SDK проекта на 11, он все еще использует JDK 8, поэтому во время выполнения он не может распознать версию класса, которая была представлена ​​в Java 10 и упоминается в сообщении ERROR, а также эта версия Java Runtime распознает только версии файлов классов до 52.0

Измените Project SDK на SDK 11 и попробуйте снова запустить свой код, вы не должны получить эту ошибку снова.

...