Ошибка: Java: недопустимый целевой выпуск: 11 - IntelliJ IDEA

Я пытаюсь создать приложение, которое было построено с использованием java 8, теперь оно обновлено до java 11. Я установил Java 11, используя статья оракула в моем оконная машина, и я использую IntelliJ IDEA 2017 в качестве моей IDE.

Я изменил переменные системной среды и установил

JAVA_HOME to C:\Program Files\Java\jdk-11.0.1

И добавил это в переменную Path.

C:\>java -version
java version "11.0.1" 2018-10-16 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.1+13-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.1+13-LTS, mixed mode) 

Когда я создаю свое приложение в IntelliJ, я получаю следующее:

Information:java: Errors occurred while compiling module 'test-domain_main'
Information: javac 1.8.0_171 was used to compile java sources
Information:1/10/2019 4:21 PM - Compilation completed with 1 error and 0 warnings in 1s 199ms
Error:java: invalid target release: 11

Это то, что я пробовал до сих пор:

  1. Я изменил целевые значения .idea/compiler.xml с 8 на 11, но это не помогло. Кроме того, проверил Target bytecode version в settings > Build, Execution, Deployment > Compiler > Java Compiler, и все мои модули установлены на 11.

  2. Пошел на file > Project Structure > SDKs *(currently I have 1.7 and 1.7 listed)* > Add new SDK > JDK > После этого я выбрал C:\Program Files\Java\jdk-11.0.1, но выдает ошибку «Выбранный каталог не является допустимым домом для JDK».

Я не уверен, что установил неправильный JDK 11, потому что в моем C:\Program Files\Java\ я вижу отдельные папки JDK и JRE для 1.7 и 1.8, но только папку JDK для 11.0.1

Или мне нужно что-то еще изменить?

Я предполагаю, что версия intellij 2017 года не поддерживает jdk11 (или, может быть, для работы ей нужен плагин), вы можете попробовать обновить до 2018 года.

Jorn Vernee 10.01.2019 22:48

Спасибо @JornVernee на основе вашего совета, я обновил и решил проблему. Java 11 отлично работает с версией IntelliJ IDEA 2018.3.3.

AMagic 10.01.2019 23:34
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
146
2
257 369
27
Перейти к ответу Данный вопрос помечен как решенный

Ответы 27

Пожалуйста, отправьте Обновить в IntelliJ IDEA 2018.x, чтобы получить поддержку Java 11. Ваша версия IntelliJ IDEA была выпущена до Java 11 и не поддерживает эту версию Java.

Даже версия 2020 года имеет такую ​​же проблему. Так что это неправильный ответ или частично правильный. Вам необходимо изменить версию sdk из структуры проекта.

Zafar 26.08.2020 21:22

@Zafar, это был правильный ответ на исходный вопрос, и OP его принял. Но у этой ошибки может быть несколько причин, которые нельзя описать одним ответом.

CrazyCoder 26.08.2020 21:24

Это неправильный ответ :) или, по крайней мере, не полный. Вы все еще можете столкнуться с этой проблемой с более новой версией IntelliJ.

Beckster 28.04.2021 17:27
  • Сегодня у меня те же информационные сообщения и сообщение об ошибке, но у меня недавно обновленная Idea -> 2018.3.3, построенная 9 января 2019 года.
  • Для решения этой проблемы я изменил Файл-> Структура проекта-> Модули - >> Уровень языка до 10.

  • И проверьте Файл -> Настройки -> Сборка, Выполнение, Развертывание -> Компилятор -> Компилятор Java - >> Байт-код проекта и версии Байт-код для каждого модуля. У меня там 11.

  • Теперь я не получаю этих уведомлений и ошибки.

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

Это сработало для меня, хотя дата IntelliJ старше даты выпуска Java. Файл => Структура проекта => Проект => SDK проекта. Добавил недавно загруженный JDK в New и нажал Apply => OK. Сразу после этого проект начал компилироваться.

VKB 19.04.2019 01:55

Это и другие подобные / возможно необходимые решения более подробно описаны (со скриншотами) на stackoverflow.com/a/26009627/1357094.

cellepo 18.09.2019 17:47
Ответ принят как подходящий

У меня та же проблема, о которой говорил Грю. Тот же Intellij 2018 3.3

Я смог начать свой проект, установив (как заявил Григорий)

File->Project Structure->Modules ->> Language level to 8 ( my maven project was set to 1.8 java)

И

File -> Settings -> Build, Execution, Deployment -> Compiler -> Java Compiler -> 8 also there

Надеюсь это будет полезно

Это и другие подобные / возможно необходимые решения более подробно описаны (со скриншотами) на stackoverflow.com/a/26009627/1357094.

cellepo 18.09.2019 17:47

Именно то, что мне нужно. Спасибо!

yanike 16.10.2020 17:05

Для тех, кто не может найти. File -> Settings Нашел в IntelliJ IDEA -> Preferences... -> Build, Execution, Deployment -> Compiler -> Java Compiler

Jonny Brooks 11.11.2020 11:04

Но почему? Это ошибка IDEA?

UnixAgain 25.12.2020 05:38

Это должен быть принятый ответ. Благодаря.

nomadSK25 27.01.2021 01:23

Это должен быть идеальный ответ, сработало .. Как перчатка

Aditya Vyas-Lakhan 12.02.2021 20:10

Я очистил установленный intellij с официального веб-сайта с последней версией и создал чистый проект с инициализатором Spring, и это произошло. Это не должно происходить при чистой установке, не так ли? Я имею в виду, что что-то не так. Кстати, это решение сработало отлично.

Serdar Samancıoğlu 10.03.2021 17:21

Большое спасибо. Это полезно для меня.

TuanNN 12.03.2021 15:03

В разделе «Файл»> «Структура проекта»> «Модули» установите флажки «Источники -> Уровень языка» и «Зависимости -> SDK модуля».

xli 11.08.2021 18:23

Получил ту же ошибку после обновления моей идеи, и я решил ее следующим образом:

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

«Уровень языка проекта:» был установлен на «11 - Синтаксис локальной переменной для лямбда-параметров». поэтому я изменил его на «SDK по умолчанию (8 - лямбды, аннотации типов и т. д.)», затем применил изменение и ошибка была устранена.

Просто была такая же ошибка. Проблема заключалась в том, что у меня был пустой package-info.java file. Как только я добавил имя пакета внутри, он заработал ...

Могу сказать, что у меня была аналогичная проблема. Мой случай: я переключился с новой версии на старую версию проекта в рабочей области, попытался запустить один junit, который требует перекомпиляции, ошибка перекомпиляции была выдана с недопустимой целью.

В настройках проектов (F4) в IntelliJ все выглядело хорошо, а java было установлено на 1,7. Но когда я пытаюсь перекомпилировать из IDE, возникает ошибка из-за неправильного целевого уровня. После проверки я обнаружил, что в одном из файлов iml установлен язык JDK_11. После ручного перехода на JDK_1_7 все вернулось в норму.

Также стоит вручную проверить уровень языка в файлах * iml, созданных IDE.

Я могу добавить, что хорошо проверить также вариант, как это было в комментариях выше: File -> Settings -> Build, Execution, Deployment -> Compiler -> Java Compiler , и проверить, правильно ли установлен целевой код.

tarkos 10.10.2019 15:29

Это продолжает откат к предыдущим настройкам. Есть ли постоянное исправление для этого? Можно ли эту конфигурацию приклеить к проекту? (Если есть несколько проектов с несколькими версиями Java, как обработать это в коде)

Praveen 15.01.2020 10:41

1 из 2 методов устранит проблему:

Способ 1 (рекомендуется)

Укажите версию Java в файле сборки.

Например, для Gradle перейдите в файл build.gradle и укажите исходную и целевую совместимость, как указано в документы, и нажмите кнопку обновления в окне инструмента Gradle.

Например, чтобы установить исходную и целевую совместимость с Java версии 17:

java {
    sourceCompatibility = JavaVersion.VERSION_17
    targetCompatibility = JavaVersion.VERSION_17
}

Способ 2

Если создание проекта через систему сборки (Maven, Gradle и т. д.) Работает, но IntelliJ показывает ошибку Invalid target release, выполните следующие действия:

  1. Закройте IntelliJ

  2. Перейти в каталог проекта

  3. Удалите каталог .idea /

  4. Запустите IntelliJ с каталогом проекта

Это повторно создаст каталог .idea / и больше не будет отображать ошибку.

ПРИМЕЧАНИЕ. Любые добавленные вами настройки IntelliJ для конкретного репозитория будут удалены при удалении каталога .idea / и будут созданы заново со значениями по умолчанию.

Не слишком ли сложно удалить папку ./idea? Все ваши настройки исчезнут.

Younes El Ouarti 15.07.2020 18:32

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

neonidian 19.07.2020 10:47

Что касается меня, у меня была такая же проблема, но она была с java v8, я использую другую версию java на своей машине для разных проектов. При импорте одного из моих проектов у меня возникла та же проблема. Чтобы проверить конфигурацию, я проверил все настройки, связанные с моим SDK, независимо от того, находятся ли они в File->Project->Project Structure / Modules или в параметрах конфигурации Run / Debug. Все, что я установил на java-8, но по-прежнему возникала та же проблема. При проверке всех файлов конфигурации я обнаружил, что compiler.xml в .idea имеет запись для bytecodeTargetLevel, которая была установлена ​​на 11. Здесь, если я изменю ее на 8, даже если он показывает тот же вывод компилятора, и удаление <bytecodeTargetLevel target = "11" /> из compiler.xml разрешит проблема.

Также существует возможность использования Maven другой версии JDK, в этом случае вы можете настроить Maven на использование версии JDK по умолчанию для проекта.

Это такой полезный ответ !!

Prakash Palnati 05.05.2021 20:06

Мой модуль проекта был установлен на 8, но pom.xml был установлен на 11. Когда я изменил с 8 на 11 в модуле, это сработало.

У меня возникла проблема, потому что я сейчас обновляю кодовую базу до JDK 11 и переключаюсь с 8 на 11 в ветвях. Похоже, IntelliJ это не нравится.

Решение:

Если вы выбрали текущий JDK в структуре своего проекта (Ctrl+Shift+Alt+S) и по-прежнему получаете ошибку, сделайте недействительным свой кеш File > Invalidate Caches / Restart....

В моем случае после перезапуска IDE ошибка исчезла.

У меня такая же ошибка, я просто меняю версию java в pom.xml с 11 на 1.8, и она работает нормально.

У меня также была аналогичная ошибка, но в моем случае это была Ошибка: java: invalid source release: 11 ... Поэтому я просто изменил все аннотации с java 11 на java 8, и даже если аннотация была java 8, я просто оставил ее как это. Надеюсь, это поможет вам решить проблему.

Если вы используете Spring Boot, проверьте версию java в файле pom.xml.

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

Если эта версия не совпадает с версией вашего компьютера по умолчанию (Java), может произойти эта ошибка.

Я внес изменения везде, но не здесь. Спасибо, что указали на это.

AKM 05.10.2021 22:15

Я изменил файл -> структуру проекта -> настройки проекта -> модули На вкладке «Источник» я установил уровень языка с: 14 или 11 на: «Проект по умолчанию». Это устранило мою проблему.

В вашем файле pom.xml внутри этого <java.version> напишите «8» вместо «11» и РЕКОМЕНДУЙТЕ свой файл pom.xml. И тадаааааа работает!

Я перепробовала все вышеперечисленное и нашла этот секретный соус

  1. убедитесь, что в pom.xml указан желаемый jdk.
  2. убедитесь, что maven указывает желаемый jdk.
  3. убедитесь, что в Projects указан желаемый jdk.
  4. убедитесь, что в Modules указано ваше целое число jdk, а в Dependencies указано ваше jdk. hth.

Я добавил эти две строчки в файл build.gradle

compileJava.options.fork = true
                                              
compileJava.options.forkOptions.executable = 'C:\\Program Files\\Java\\jdk-11.0.8'

и это работает

Я использую окна и мой проект на основе gradle

мой путь jdk -> 'C: \ Program Files \ Java \ jdk-11.0.8'

укажите свой путь jdk

Недавно я столкнулся с той же проблемой. Эта ошибка отображалась на моем экране после запуска основного файла проекта. Ошибка: java: неверный исходный код: 11 Следуйте инструкциям по устранению этой ошибки

  1. Файл-> Структура проекта -> Проект
  2. Нажмите кнопку «Создать» под Project SDK: добавьте последнюю версию SDK и нажмите «ОК».

После запуска вы увидите, что ошибка устранена.

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

Нижеприведенные изменения сработали для меня и надеюсь, что то же самое сработает и для вас.

  1. Измените версию Java с 11 на 8 в файле pom.xml
    <java.version> 1.8 </java.version>

  2. Перейдите в, Файл -> Настройки -> Сборка, Выполнение, Развертывание -> Компилятор -> Компилятор Java
    . Здесь в столбце Модуль вы можете увидеть свой проект в списке, а в столбце Целевая версия байт-кода версия Java для проекта уже указана (в основном 11), измените ее на 8

  3. Перейдите в Файл -> Структура проекта -> Модули. Здесь, на вкладке Источник, вы можете увидеть опцию Уровень языка, выберите 8 - Лямбды, аннотации типов и т. д.. Наконец, выберите Применить и ОК, все готово.

Только №1 работал у меня .. пробовал много решений, но это сработало

Rajni Gangwar 09.03.2021 13:22

У меня это работает. То есть, изменил версию в pom, а затем также изменил оба этих места в IntelliJ. Не уверен, почему в IntelliJ есть 2 места, где вам нужно указать версию Java.

J Woodchuck 23.04.2021 20:28

Где путь к pom.xml?

MML 10.08.2021 04:04

Привет, @MML, pom.xml доступен на корневом уровне самого проекта, например {Your Project} \ pom.xml. Разверните свой проект, вы увидите файл pom.xml

B Sangappa 10.08.2021 16:53

@ b-sangappa Я переключился на просмотр проекта в студии Android, но не могу найти этот файл, могу ли я создать его вручную?

MML 10.08.2021 17:03

@MML, как только проверьте, присутствует ли файл в местоположении Project самого проводника, если его нет, вы можете создать файл POM на корневом уровне, например {Your Project} \ pom.xml

B Sangappa 11.08.2021 10:25

6 января 2021 г.

Это то, что у меня сработало.

Перейдите в File -> Project Structure и выберите вкладку «Dependencies» на правой панели окна. Затем измените «Module SDK», используя раскрывающийся список, как это. Затем примените изменения.

image 1

Это решает меня. Спасибо, это может произойти, когда модули индексируются в недопустимой версии Java.

Rasika Weragoda 20.09.2021 11:02

2021, 12 января

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

  1. откройте терминал и введите: java -version, затем я получил 1.8, и я пошел в .bash_profile, чтобы переключить версию java на 11.2, поскольку у меня установлено несколько версий java. Не забудьте «перезагрузить» терминал и еще раз проверьте версию Java, чтобы убедиться, что переключение прошло успешно.

  2. Затем я перешел в File -> Project Structure, чтобы убедиться, что мой IntelliJ использует ту же версию, что и мой env, то есть 11.2.

  3. ПЕРЕЗАГРУЗИТЕ свой Intellij, mvn clean install, решено, надеюсь, это поможет кому-то, у кого такая же проблема, спасибо.

1. pom.xml (start with this important)
    - <java.version>1.8</java.version>
    * Enable auto import on pop up
    * Wait until it loads

2. Project Structure
    - Project
        - Project SDK - 1.8 
        - Project language Level - 8
    - Modules
        - Sources
            - Language level - 8
            - Dependencies - Project SDK 1.8

3. Delete idea folder
4. Close window
5. Reopen window (make sure it loads at bottom)

Попробуй это

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

В более новых версиях Intellij проверьте правильность настройки jdk 11:

  1. Щелкните правой кнопкой мыши свой проект, затем Open Module Settings. Проверьте настройки, перечисленные ниже:
    • SDKs (Under Platform Settings) > Add the jdk 11 you want located on your computer.
    • Modules (Under Project Settings) > Set language level to jdk 11 for sources and dependencies.
    • Project (Under Project Settings) > Select jdk 11 as Project SDK.
  2. Потом File > Settings > Java Compiler. Проверьте следующие настройки:
    • Используйте компилятор: Javac
    • Версия байт-кода проекта: 11
    • Версия байт-кода для каждого модуля: целевая версия байт-кода для всех модулей должна быть установлена ​​на 11.

У меня такая же целевая ошибка java 11, и моя проблема заключалась в maven-compiler-plugin устаревшая версия. обновился до последнего, и все заработало

Если ваш проект построен с использованием gradle, вам следует обновить:

File > Settings > Build, Execution, Deployment > Build Tools > Gradle

И обновите Gradle JVM до версии 11.

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