Ошибка: java: javacTask: исходный выпуск 8 требует целевой выпуск 1.8

889

Использование IntelliJ IDE не позволяет компилировать проекты. Скриншоты настроек ниже:

Используется JDK:

http://gyazo.com/b6e32119af7b04090d890cad04db6373

SDK проекта и уровень языка:

http://gyazo.com/55a5fc9f7f2bb721a04780ce9d74eeab

Уровень языка:

http://gyazo.com/143bffad63fd89cafc231298729df2fc

У кого-нибудь есть идеи?

Hobbyist
источник
1
Это не похоже на ошибку от "чистого Intellij"; ты не используешь муравей buildscript или что-то?
ФГ
stackoverflow.com/a/42993827/2685581
Аджай Кумар

Ответы:

1913
  1. Файл> Настройки> Сборка, выполнение, развертывание> Компилятор> Компилятор Java
  2. Измените версию целевого байт-кода на 1.8 модуля, для которого вы работаете.

Если вы используете Maven

Добавьте плагин компилятора в узел 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>

(Поднято из комментариев.)

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

Weslor
источник
Работает в IntelliJ 14 Ultimate.
DtechNet
В старых версиях IDEA попробуйте: Настройки -> Компилятор -> Компилятор Java -> Версия байт-кода для
каждого
88
Если вы работаете на Mac, он находится в Intellij IDEA> Настройки ...> Сборка, выполнение, развертывание> Компилятор Java
JP Armstrong,
4
Для Intellij новее , чем 2016.2, есть еще одно место для проверки: Project Structure -> Project Settings -> Modules -> Denpendencies -> Module SDK.
Брюс Сан
1
Если у вас есть иерархия POM с более чем двумя уровнями и ваш плагин компилятора определен в родительском POM, IntelliJ может не распознать его на самом глубоком уровне. Я могу сказать, что нет, потому что для некоторых других модулей это так, даже если они расширяют один и тот же родительский POM.
Соня
202

Вам нужно перейти в Настройки и установить под компилятором Java следующее: введите описание изображения здесь

также проверьте настройки проекта

Грегори Мазур
источник
116

Это похоже на ошибку, которую генерирует Maven, если у вас неправильно настроен плагин компилятора. Вот пример конфигурации компилятора Java 8.

<project xmlns="http://maven.apache.org/POM/4.0.0"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

<!-- ... -->

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.5.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

<!-- ... -->

</project>
Стив Шалонер
источник
10
Для других новичков Maven , как я, это должно быть под project, buildи потом plugins.
Даррен Хейл
4
Также, если <source>1.8</source>и <target>1.8</target>настроено, вышеупомянутая ошибка может произойти.
BuZZ-DEE
1
Это сработало для меня, спасибо! Тег версии не разрешается (я изменил его в соответствии с моей версией Maven), поэтому я закомментировал его. Я считаю, что Maven должен автоматически получить правильную последнюю версию в этом случае, основываясь на этой теме: stackoverflow.com/questions/17239394/… .
Борис
84

Самый быстрый способ, который я нашел:

  • нажмите: CTRL+ SHIFT+ A(для Mac + SHIFT+ A)
  • тип: java compiler
  • Нажмите: ENTER

В окне настроек установите байт-код Target равным 1,8.

(или 9 для java9)

snovelli
источник
3
Это абсолютно сработало для меня (спасибо!), Но я не понимаю, почему это отличается от того, что находится в pom.xml, настройках модуля и т. Д.
Адам Лехенбауэр
1
нажмите ⌘, чтобы получить предпочтение.
X. Ван
31

Есть два способа решения этой проблемы:

  1. Установить настройки (File -> Settings -> Build, Execution, Deployment -> Java Compiler): введите описание изображения здесь
  2. Добавьте раздел сборки в ваш pom.xml: введите описание изображения здесь
Лорд найтон
источник
18

Многие ответы, касающиеся Maven, верны, но вам не нужно настраивать плагин напрямую.

Как описано на вики-странице плагина компилятора Apache Maven, вы можете просто установить 2 свойства, используемые плагином.

<project>
  [...]
  <properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>
  [...]
</project>
Марвин Рихтер
источник
1
@ Марвин Рихтер Я попробовал ваше решение, но оно не работает с IntelliJ. Я предполагаю, что оно корректно в чистой сборке maven (из командной строки), но IntelliJ просто игнорирует эти свойства. Мне пришлось настроить плагин, как указано в других решениях.
Бенуа
1
Нет, я не сделал, потому что другие решения работали. И теперь я перенес свой проект в Gradle.
Бенуа
4
Работает как шарм после того, как вы делаете правой кнопкой мыши на pom.xml -> Maven -> Reimport. Это должен быть принятый ответ для пользователей Maven.
птквск,
На самом деле вам нужен плагин org.apache.maven.plugins:maven-compiler-pluginв вашем файле pom или gradle, что в документации намеревалось сказать, что этого свойства в свойствах pom будет достаточно, в основном потому, что они устанавливают значения по умолчанию для плагина, например, <source> $ { maven.compiler.source} </ source>
EliuX
Это должен быть принятый ответ. Работал для меня на IntelliJ 2018.2 на Mac OS 10.13.5
user674669
13

Я исправил это, зайдя в « Структура проекта» -> « Модули» , найдите соответствующий модуль, нажмите на вкладку « Зависимости » и измените Module SDKна Project SDK.

Сэм Барнум
источник
9

Я исправил это, просто изменив целевую версию компиляции на 1.8. Оно в:

Файл >> Настройки >> Построение, выполнение, развертывание >> Компилятор >> Компилятор Java

Вишал
источник
1
Спасибо, Вишал. Мы должны указать версию байт-кода проекта или, по крайней мере, версию байт-кода для каждого модуля с помощью Intellij Idea. Просто установка его в pom.xml для maven-compiler-plugin не решила проблему для меня.
WebComer
6

Вам нужно перейти на /.idea/compiler.xmlи перейти targetна нужный jdkуровень.

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

Мухаммед Усман
источник
5

В моем случае я исправил эту проблему, открыв файл проекта .iml (он находится в корневой папке проекта и имеет имя, совпадающее с именем проекта) и изменив строку <orderEntry type="jdk" jdkName="1.7" jdkType="JavaSDK" />на<orderEntry type="jdk" jdkName="1.8" jdkType="JavaSDK" />

У меня все было настроено, как и в других ответах, но по какой-то причине Idea обновила файл .iml неправильно.

облако
источник
2
Иногда кажется, что Intellij не обновляет файлы конфигурации, даже если вы настроили все меню. Делать недействительными кэши и перезапускать (после редактирования файлов конфигурации), сделали свое дело для меня. Странный.
Джа
1
Спасибо. Наконец, после попытки и неудачи любого другого решения, указанного выше, это сработало.
Нитин Бансал
4

Я исправил это, изменив мой файл POM. Обратите внимание на последний комментарий под самым высоким проголосовавшим ответом.

<plugin>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.3.2</version>
        <configuration>
            <source>1.8</source>
            <target>1.8</target>
            <encoding>UTF-8</encoding>
        </configuration>
</plugin>

Источник должен соответствовать цели.

user4884640
источник
4

Я просто повторно импортировал maven кнопку, после чего ошибка исчезла.

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

Фам Хунг
источник
Спасибо. Этот намек сделал это
Veilchen4ever
3

Если вы работаете с Android-студией 1.3, выполните следующие действия -

Перейти к файлу - структура проекта

Под модулями - приложение - вкладка Свойства , выберите Source Compatibility - 1.8 и

Целевая совместимость - 1,8 .

И тебе хорошо идти.

B.shruti
источник
3

В вашем файле уровня приложения Gradle >> compileOptions добавьте эти две строки

android {
  compileOptions {
    ...
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
    ...
   }
}
Бадр
источник
Спасибо чувак. Ваш ответ сработал
Solution Spirit
1

В файле compiler.xml вы найдете:

<bytecodeTargetLevel>
  <module name="your_project_name_main" target="1.8" />
  <module name="your_project_name_test" target="1.8" />
</bytecodeTargetLevel>

и вы можете изменить целевое значение со старого на новое для меня, мне нужно было изменить его с 1,5 до 1,8

Бачири Тауфик Абдеррахман
источник
1

Я только что провел некоторое время, борясь с той же проблемой. Единственное, что сработало для меня, это не использование встроенного mvn (3.3.9), а указание на внешнюю загруженную версию (3.5.0). Наконец проект открылся и все было хорошо.

гром
источник
1

Эта проблема возникает, если ваш модуль настроен с процессором аннотации, а другой модуль - нет. Установите одинаковую конфигурацию для всех модулей, поскольку это будет циклическая зависимость.

Гани
источник
0

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

Изменение файла -> Настройки -> Сборка, Исключение, Развертывание -> Maven -> Файл пользовательских настроек, чтобы указать мои пользовательские настройки с правильными репозиториями, устранило проблему, которая в противном случае скрывалась.

Об этой проблеме узнали через «Справка» -> «Показать журнал в проводнике» -> щелкнув файл журнала, когда ранее только получали ошибку в заголовке и «java.lang.NullPointerException» в консоли.

эйс
источник
0

Решение проблемы очень просто. Вам нужно открыть .idea / compiler.xml в вашем İdea Project и

Вы должны написать соответствующую целевую версию

Axmedbek
источник
0

С Intellij , используя Maven , вы должны проверить, что Intellij автоматически импортировал ваш проект. Вы можете проверить, нажав на вкладку Maven справа от вашего редактора.

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

Если вашего Проекта здесь нет, добавьте pom.xmlфайл, нажав на +.

Очевидно, что проект также должен иметь соответствующие <build/>:

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
            <source>1.8</source>
            <target>1.8</target>
        </configuration>
    </plugin>
Николас Зозол
источник
0

Если ни один из других ответов не работает, проверьте свой SDK модуля .

У меня появилась эта ошибка после того, как я обновил SDK проекта до 1.8, компилятор Javac до 1.8 и т. Д. У меня была проблема с «Module SDK».

(в Linux) File > Project Structure...Затем перейдите в открывшемся окне и выберите пункт Modulesниже Project Settings. Выберите нужный модуль из списка, а затем Dependenciesвкладку и убедитесь, что Module SDKон установлен правильно.

dzimney
источник
0

Я проверил все вышеперечисленное, но ошибка все еще происходит.

Но реимпортировать все maven Projects (кнопка перезагрузки на панели Maven Projects) работает в моем случае.

щелчок
источник
0

Не забудьте установить зависимости для вашего модуля: введите описание изображения здесь

Хиеу Во
источник