IDEA: javac: исходная версия 1.7 требует целевой версии 1.7

При запуске теста JUnit, используя IntelliJ IDEA, я получаю

Как я могу это исправить?

  • Использование SDK 1.7
  • Уровень владения языком модуля составляет 1,7

Maven build работает отлично. (Вот почему я верю в это в проблеме конфигурации IDEA)

18 ответов

Most likely you have incorrect compiler options imported from Maven here:

compiler options

Also check project and module bytecode (target) version settings outlined on the screenshot.

Other places where the source language level is configured:

  • Project Structure | Project

  • Project Structure | Modules (check every module) | Sources

Maven default language level is 1.5 (5.0), you will see this version as the Module language level on the screenshot above.

This can be changed using maven-compiler-plugin configuration inside pom.xml:

<project>
  [...]
  <build>
    [...]
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
    </plugins>
    [...]
  </build>
  [...]
</project>

or

<project>
  [...]
  <properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>
  [...]
</project>

IntelliJ IDEA will respect this setting after you Reimport the Maven project in the Maven Projects tool window:

IntelliJ 15, 2016 и 2017

Аналогично обсужденному ниже для IntelliJ 13 и 14, но с дополнительным уровнем на панели "Настройки / Предпочтения": " Настройки" > " Сборка, выполнение, развертывание > Компилятор > Компилятор Java".

IntelliJ 13 и 14

В IntelliJ 13 и 14 проверьте Настройки> Компилятор> Пользовательский интерфейс компилятора Java, чтобы убедиться, что вы не ориентируетесь на другую версию байт-кода в своем модуле.

В IntelliJ IDEA 14.1 "Целевая версия байт-кода" находится в другом месте.

Следующее изменение сработало для меня:

Файл> Настройки... > Построение, выполнение, развертывание> Компилятор> Компилятор Java: измените целевую версию байт-кода с 1.5 на 1.8

введите описание изображения здесь

введите описание изображения здесь

Посмотрели ли вы конфигурацию сборки, должно быть так, если вы используете Maven 3 и JDK 7

<build>
    <finalName>SpringApp</finalName>
    <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
            </configuration>
        </plugin>
        ...
    </plugins>
    ...
</build>

Я столкнулся с этим, и исправление состояло в том, чтобы перейти в "Настройки проекта"> "Модули"> нажать на конкретный модуль> вкладку "Зависимости". Я заметил, что Module SDK все еще установлен на 1.6, я изменил его на 1.7, и он работал.

В моем случае я нашел необходимые параметры ("целевая версия байт-кода") в настройках> компилятор> компилятор java (идея intelij 12.1.3)

Измените файл настроек компилятора проекта по следующему пути и измените "target" на 1.7:

/project/.idea/compiler.xml

<bytecodeTargetLevel>
  <module name="project-name" target="1.7" />
</bytecodeTargetLevel>

Я решил это, установив поле пустым:

Настройки> Компилятор> Компилятор Java> Версия байт-кода проекта

Чем IntelliJ использует версию JDK по умолчанию.

С одного момента на другой я тоже получал эту ошибку без четкой причины. Я изменил все настройки на компиляторе / модуле и т. Д. Но в конце я просто воссоздал проект IntelliJ путем повторного импорта проекта Maven, и проблема была решена. Я думаю, что это ошибка.

IntelliJ 12 129,961

Я сделал это после небольшого обновления IntelliJ IDEA 14 до версии 14.1. Для меня поменялось редактирование top/parent pom, а затем щелкнул повторно импортировать Maven (если он не автоматический).

Но, может быть, достаточно щелкнуть правой кнопкой мыши на модуле (модулях)/ агрегатном / родительском модуле и Maven -> Reimport.

Я решил ниже метод

Файл >> Структура проекта >> Проект >> Уровень языка проекта -> установить правильную версию (например: 1.5)

Я нашел другой способ столкнуться с этой ошибкой. Вы можете получить это, если вы реорганизовали свою структуру каталогов, и один из ваших poms указывает на старого родителя, который больше не конфигурирует javac (потому что эта конфигурация была перемещена на средний уровень). Если это происходит, верхний уровень по умолчанию равен 1,5, а неправильно ведущий себя нижний уровень наследует его.

Поэтому, когда вы видите эту ошибку, вы должны проверить, что ваша структура pom соответствует вашей структуре каталогов.

Если все предыдущие решения не сработали для вас (как в моем случае), вы можете удалить файлы конфигурации intellij:

  • project_directory /.idea / compiler.xml
  • project_directory /.idea / encodings.xml
  • project_directory /.idea / misc.xml
  • project_directory /.idea / modules.xml
  • project_directory /.idea / vcs.xml
  • project_directory /.idea / workspace.xml
  • и т.п.

Intellij будет восстанавливать новые позже.Однако, будьте осторожны, это также приведет к удалению всей конфигурации intellij, выполненной на projet (то есть: конфигурация режима отладки,...)

Если сборка Maven работает нормально, попробуйте синхронизировать структуру проектов Maven и IntelliJ IDEA.

В окне инструментов Maven нажмите кнопку обновления обновление, При нажатии этой кнопки IntelliJ IDEA анализирует структуру проекта в окне инструментов Maven.

Обратите внимание, что это может не помочь, если вы используете сборку EAP, поскольку функция синхронизации Maven иногда может быть нарушена.

Если это проект Gradle, в вашем файле build.gradle найдите следующие параметры:

sourceCompatibility = "xx"
targetCompatibility = "xx"

Для всех подпроектов в вашем корневом файле build.gradle вы можете поместить:

subprojects { project ->
    sourceCompatibility = "1.7"
    targetCompatibility = "1.7"
}

Хотя вы можете вручную установить языковые уровни в Idea > Настройки, если это проект Gradle, Idea автоматически синхронизирует файлы модуля.iml из настроек Gradle (протестировано с Idea 15+). Таким образом, все ваши ручные изменения отменяются при обновлении gradle.

На основании документации Gradle, если они не установлены, то используется текущая конфигурация JVM.

Проверяйте.idea/misc.xml иногда вам нужно вручную изменить атрибут languageLevel="JDK_1_X"

Вам нужно изменить версию компилятора Java в конфигурации сборки.

Убедитесь, что выбрана правильная зависимость. Файл> Структура проекта

Выберите свой проект и перейдите на вкладку Зависимости. Выберите правильную зависимость из выпадающего списка или создайте новую.

Другие вопросы по тегам