IntelliJ: Ошибка: Java: ошибка: выпуск 5 не поддерживается


14

Я использую IntelliJ IDEA Ultimate 2019.3.1 . Всякий раз, когда я пытаюсь запустить любой простой проект Java Maven (может быть, это даже простой Hello World), я получаю следующую ошибку:

Error:java: error: release version 5 not supported

Запустив java --versionтерминал, я получаю следующий вывод:

openjdk 11.0.5 2019-10-15
OpenJDK Runtime Environment (build 11.0.5+10-post-Ubuntu-0ubuntu1.1)
OpenJDK 64-Bit Server VM (build 11.0.5+10-post-Ubuntu-0ubuntu1.1, mixed mode, sharing)

Запустив javac --versionтерминал, я получаю следующий вывод:

javac 11.0.5

Переходя к настройкам компилятора Java (как предлагается здесь ), я вижу это:

Настройки компилятора Java

Я попытался отредактировать " Target bytecode version " до 1.8, но я получаю следующие ошибки:

Error:(1, 26) java: package javafx.application does not exist
Error:(2, 20) java: package javafx.stage does not exist
Error:(4, 27) java: cannot find symbol
  symbol: class Application
Error:(12, 23) java: cannot find symbol
  symbol:   class Stage
  location: class Main
Error:(7, 9) java: cannot find symbol
  symbol:   method launch(java.lang.String[])
  location: class Main
Error:(11, 5) java: method does not override or implement a method from a supertype

Меняя его на версию 1.11, я получаю эту ошибку вместо:

Error:java: Source option 5 is no longer supported. Use 6 or later.

Как вы думаете, в чем проблема? Как я могу решить это?


Каков уровень языка проекта и модулей?
Бас Лейдеккерс

Ответы:


33

См.  Https://stackoverflow.com/a/12900859/104891 .

Прежде всего, установите language level/ release versionsв pom.xmlтак:

<properties>
  <maven.compiler.source>1.8</maven.compiler.source>
  <maven.compiler.target>1.8</maven.compiler.target>
</properties>

Maven устанавливает значение по умолчанию 1,5 в противном случае. Вам также нужно будет указать, maven-compiler-pluginесли вы еще этого не сделали:

<dependency>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-compiler-plugin</artifactId>
  <version>3.8.1</version>
</dependency>

Также попробуйте изменить версию Java в каждом из этих мест:

Файл -> Структура проекта -> Проект -> Проект SDK -> 11.

Файл -> Структура проекта -> Проект -> Уровень языка проекта -> 11.

Файл -> Структура проекта -> Проект -> Модули -> -> Источники -> 11

В проекте -> ctrl+ alt+ s-> Построение, Выполнение, Развертывание -> Компилятор -> Компилятор Java -> Версия байт-кода проекта -> 11

В проекте -> ctrl+ alt+ s-> Построение, Выполнение, Развертывание -> Компилятор -> Компилятор Java -> Модуль -> 1.11.


2
Я сделал все, но все равно я вижу ту же ошибку всякий раз, когда я запускаю приложение
Tushar Jajodia

@TusharJajodia попробуйте включить maven-compiler-pluginв качестве зависимости
Джош Джонсон

После неудачных попыток найти разные решения в Интернете, эта конкретная строка устранила проблему: Файл -> Структура проекта -> Проект -> Модули -> -> Источники -> 11
Мод

На самом деле, правильный путь к этому для java 9+ - это определить maven-compiler-pluginкак плагин вместо зависимости. Не нужно ничего настраивать в IntelliJ, просто настройте pom правильно, и он будет работать в IntelliJ из коробки!
Джейкоб ван Линген

2

Мне потребовалось некоторое время, чтобы собрать фактическое решение, но вот, как избавиться от этой ошибки компиляции.

  1. Открыть настройки Intelij
  2. Искать "компилятор" (или что-то вроде "компи"
  3. прокрутите вниз до Maven -> Java компилятор. На правой панели будет список модулей и связанных с ними версий компиляции Java «целевой версии байт-кода».
  4. Выберите версию> 1.5. Возможно, вам придется обновить JDK, если он недоступен. введите описание изображения здесь

1

Если вы используете весеннюю загрузку в качестве родителя, вы должны установить свойство java.version, потому что это автоматически установит правильные версии.

<properties>
   <java.version>11</java.version>
</properties>

Свойство, определенное в вашем собственном проекте, переопределяет все, что установлено в родительском помпе. Это переопределяет все необходимые свойства для компиляции в правильную версию.

Некоторая информация может быть найдена здесь: https://www.baeldung.com/maven-java-version


Я также начинаю узнавать о Spring Boot сейчас, так что эта информация может быть очень полезна для меня :) не могли бы вы объяснить это более подробно? (В каком файле я должен изменить эти свойства, что я должен написать точно ...?) Спасибо!
Robb1

1
Я добавил дополнительную информацию в свой пост.
V Янсен


0

Я добавляю следующий код в мой pom.xmlфайл, это решило мою проблему.

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
</properties>

0

Вы должны добавить только две строки в ваш pom.xml, и после этого ваша проблема исчезнет.
Добавьте эти две строки в ваш pom.xml -

<!--pom.xml-->
<properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
</properties>

0

В IntelliJ откройте файл pom.xml

Добавьте этот раздел раньше (если в вашем файле уже есть раздел, просто добавьте строки ниже в этот существующий раздел):

<properties> 
      <maven.compiler.source>1.8</maven.compiler.source> 
      <maven.compiler.target>1.8</maven.compiler.target> 
   </properties>`

0

Единственным рабочим решением в моем случае было добавление следующего блока pom.xml:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.0</version> <configuration> <release>12</release>
        </configuration>
        </plugin>
    </plugins>
</build>
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.