Решение ошибки "invalid target release: 11" в IntelliJ IDEA

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Для устранения ошибки "некорректный целевой релиз: 11", вам потребуется настроить JDK 11 в IntelliJ IDEA следующим образом:

  1. Проверьте версию JDK 11, воспользовавшись командой java -version.
  2. Откройте окно Структура проекта нажатием комбинации Ctrl+Alt+Shift+S.
  3. Установите JDK 11 в качестве Project SDK.
  4. Установите Уровень языка проекта равным 11.

Версию Java для Maven можно указать в pom.xml так:

xml
Скопировать код
<properties>
    <maven.compiler.source>11</maven.compiler.source>
    <maven.compiler.target>11</maven.compiler.target>
</properties>

В Gradle версию Java определите в build.gradle следующим образом:

groovy
Скопировать код
sourceCompatibility = '11' // Говорим Gradle, что мы работаем с Java 11
targetCompatibility = '11' // Запрашиваем совместимость кода с Java 11

После внесения всех изменений, пересоберите проект.

Кинга Идем в IT: пошаговый план для смены профессии

Проверка настроек и совместимости окружения разработки

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

  • Версия IDE: Убедитесь, что ваша версия IntelliJ IDEA совместима с JDK 11 (не старее, чем 2018.x).
  • Параметры окружения: Убедитесь, что переменные окружения JAVA_HOME и Path корректно указывают на JDK 11.
  • Настройки компилятора JDK: Важно, чтобы в настройках Java Compiler по умолчанию стояла JDK 11.

Как справиться с сложными ошибками

Сложные ошибки можно быть так же мешающими, как и пятно на белой рубашке. Вот пара советов:

  • Уровень языка проекта: Уровень языка должен соответствовать вашей версии JDK – в данном случае, 11.
  • Контрольные версии байт-кода: Сверьте версии байт-кода проекта и модулей с версией вашей JDK.
  • Путь к проектному JDK: Если IntelliJ IDEA "потерялась", вы можете указать путь к JDK 11 вручную через окно Структура проекта.
  • Постоянные ошибки: Происходят ли ошибки с папкой .idea/? Возможно, стоит удалить её и переоткрыть проект, чтобы исправить возможные искажения в конфигурационных файлах.

Управление JDK с помощью инструментов сборки

Инструменты сборки, такие как Maven и Gradle, могут облегчить работу с JDK:

  • Maven: Явно укажите версию Java 11 в pom.xml.
  • Gradle: В build.gradle, для подтверждения использования Java 11, используйте JavaVersion.VERSION_11.

Диагностика сложных проблем

Если ваши настройки корректны, но проблемы всё ещё остаются, следуйте этому чек-листу:

  • Проверьте пути IntelliJ IDEA: Если вы видите сообщение "не является действительным домашним каталогом", вернитесь к настройкам Структура проекта и добавьте JDK 11 заново.
  • Проверка зависимостей проекта: Возможно, некоторые из них связаны с другой версией JDK?
  • Старая версия IDE: Обновление IntelliJ IDEA до версии, совместимой с JDK 11, может решить вашу проблему.

Байт-код и вы

Байт-код — это своего рода мост между вашим кодом и JVM:

  • Файлы проекта: Искажения в директории .idea/ или в файле проекта (.iml) могут возникать, в таких случаях их следует удалять, позволяя IntelliJ воссоздать их заново.
  • Путь к JDK: Проверьте корректность указания пути к JDK 11 в настройках IntelliJ IDEA.
  • Уровень языка: Обеспечьте корректное соответствие уровня языка версии вашей JDK, то есть установите его в 11.

Визуализация

Представим версии Java как этажи в библиотеке, а IntelliJ IDEA – как быстрого библиотекаря:

Markdown
Скопировать код
Этажи библиотеки (📚): [5, 6, 7 ... 10, 🎯11, 12, ...]
Уровни доступа библиотекаря (👨‍🏫): [5, 6, 7 ... 10, ❓, 12, ...]

Ошибка некорректного целевого релиза — так же, как попросить библиотекаря достать книгу с 11-го этажа, где он не может взять книгу.

Ваши настройки: Целевой релиз = 11

🔧 Решение:

Markdown
Скопировать код
1. Установите "лестницу" (JDK 11), затем
2. "Обучите" библиотекаря (IntelliJ):
   – Добавьте этаж к его "лестнице" (выберите SDK = JDK 11)
   – Покажите ему новый этаж (установите Уровень языка = 11)

Теперь библиотекарь полностью готов работать с 11-м этажом!

Командная строка на помощь

Командная строка может оказаться полезной, когда с IDE возникают проблемы:

  • Используйте команды javac с опциями -source и -target, чтобы контролировать компиляцию кода.
  • Maven в командной строке: mvn clean install проверит, что сборка использует версию Java, указанную в pom.xml.
  • Gradle в командной строке: ./gradlew build применит настройки из build.gradle.

Полезные материалы

  1. Настройка SDK | Документация IntelliJ IDEA — подробное руководство по настройке SDK.
  2. Обзор установки JDK — официальная инструкция по установке Java SE 11.
  3. Заметки к выпуску JDK 11 — ключевая информация о JDK 11.
  4. Настройка компилятора Maven — как настроить Maven для работы с Java.
  5. Плагин Java для Gradle — подробности о использовании Gradle в проектах на Java.
  6. Maven в IntelliJ IDEA — инструкция по настройке Maven.
  7. Смена Java runtime в IDEA — как переключиться на Java 11 в IntelliJ IDEA.