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

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

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

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

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

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

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

параметры компилятора

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

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

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

проект

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

источники

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

Это можно изменить с помощью конфигурации maven-compiler-plugin внутри pom.xml :

  [...]  [...]   org.apache.maven.plugins maven-compiler-plugin  1.8 1.8    [...]  [...]  

или

  [...]  1.8 1.8  [...]  

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

реимпорт

IntelliJ 15, 2016 и 2017

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

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

IntelliJ 13 и 14

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

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

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

Для меня изменилось следующее изменение:

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

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

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

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

  SpringApp   maven-compiler-plugin  1.7 1.7   ...  ...  

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

Я нашел необходимые параметры («target bytecode version») в настройках> компилятор> java-компилятор в моем случае (идея intelij 12.1.3)

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

/project/.idea/compiler.xml

    

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

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

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

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

IntelliJ 12 129.961

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

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

Я разрешил следующий метод

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

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

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

 sourceCompatibility = "xx" targetCompatibility = "xx" 

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

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

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

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

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

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

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

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

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

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

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

Если все предыдущие решения не сработали для вас (что было моим делом), вы можете удалить файлы конфигурации 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 будет регенерировать новые позже. Однако БУДЬТЕ ОСТОРОЖНЫ, это также удалит всю внутреннюю конфигурацию, выполненную на проекте (то есть: настройка режима отладки, …)

  • В чем разница между HashMap и TreeMap?
  • Порядок инициализации и инстанцирования Java
  • Trivial: получите подтверждение по электронной почте, отправленное в android
  • Как выйти из приложения Java из программы
  • Что такое хорошая библиотека для анализа математических выражений в java?
  • Ошибка: java: javacTask: исходный выпуск 8 требует целевого релиза 1.8
  • в чем разница между i ++ и ++ i in for loop (Java)?
  • Включить частичную компиляцию в IntelliJ IDEA
  • SimpleXML выбрасывает XmlPullParserException, unterminited entity ref без причины
  • Не удалось выполнить dex: несколько файлов dex определяют
  • Можно ли читать данные Firebase без подключения слушателей?
  • Давайте будем гением компьютера.