it-roy-ru.com

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

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

enter image description here

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

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

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

433
JAM

Скорее всего, у вас неверные параметры компилятора, импортированные из Maven:

compiler options

Также проверьте настройки версии байт-кода проекта (target), указанные на скриншоте.

Другие места, где настроен уровень языка source:

  • Структура проекта | Project

 project

  • Структура проекта | Модули (проверьте каждый модуль) | Источники

 sources

Maven уровень языка по умолчанию равен 1.5 (5.0), вы увидите эту версию как уровень языка модуля на снимке экрана выше.

Это можно изменить с помощью maven-compiler-plugin configuration внутри 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>

или же

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

IntelliJ IDEA будет соблюдать этот параметр после того, как вы повторно импортируете проект Maven в окне инструментов Maven Projects :

 reimport

612
CrazyCoder

IntelliJ 15, 2016 и 2017

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

 enter image description here

IntelliJ 13 и 14

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

enter image description here

355
Drew Noakes

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

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

Файл> Настройки ...> Сборка, выполнение, развертывание> Компилятор> Компилятор Java : изменить Целевая версия байт-кода от 1,5 до 1,8

enter image description here

enter image description here

61
ROMANIA_engineer

Посмотрели ли вы конфигурацию сборки, должно быть так, если вы используете 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>
41
swissonid

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

22
Rob Barreca

Я нашел необходимые опции ('target version bytecode version') в settings> compiler> Java compiler в моем случае (intelij idea 12.1.3)

13
eger

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

/project/.idea/compiler.xml

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

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

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

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

5
Robert Moszczynski

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

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

4
OMax

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

IntelliJ 12 129,961

4
pveentjer

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

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

2
mati

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

1
k.a.i

Если это проект 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. 

1
Cagatay Kalan

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

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

1
Gus

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

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

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

1
naXa

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

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

0
Viraj Kulkarni

Если все предыдущие решения не сработали для вас (в моем случае), вы можете удалить файлы конфигурации 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 (то есть: конфигурация режима отладки, ...)

0
Youness Marhrani

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

 enter image description here

0
Nirbhay Rana