Ошибка «invalid target release» возникает при попытке компилятором Java скомпилировать исходные файлы с неизвестной для него версией Java. В подавляющем большинстве случаев ошибка возникает оттого, что у вас в системе установлена и запускается Java более старой версии, чем та версия Java, которая требуется для компиляции исходных файлов.

Случаи, в которые вы можете натолкнуться на ошибку «Invalid target release»:

Maven error — Fatal error compiling: invalid target release

Вы хотите собрать мавеновский проект, в pom.xml у вас указана более новая версия Java, а в системе установлена более старая версия:

Fatal error compiling: invalid target release при сборке проекта мавеном

В данном случае в системе установлена JDK 8, а в pom.xml указана Java 12.

Решение проблемы

В данном случае вам нужно либо обновить свой JDK до более нового, либо понизить требуемую версию в файле pom.xml до той, что у вас установлена в системе.

Ошибка «Invalid target release» при сборке в IDE

Итак, у вас есть проект, открытый в вашей любимой IDE. Возьмём для примера IntelliJ Idea. Возможно, вы создали проект в Idea, импортировав pom.xml или build.gradle, а возможно, вы создали этот проект с нуля.

В операционной системе у вас установлена JDK 8 и в настройках Idea подключена именно эта версия. Но в настройках проекта Idea или в файле pom.xml указана версия JDK 12 (или более новая).

В этом случае, при попытке собрать проект, вы увидите лишь ошибку о неправильной версии:

Invalid target release при сборке в IDE
Error:java: invalid source release: 12

Решение проблемы

Первый вариант решения проблемы это установить более новую версию JDK и указать её в настройках IntelliJ Idea

Второй вариант решения данной ошибки – понизить версию в свойствах проекта или в pom.xml / build.gradle. Примечание: обычно это менее приемлемый вариант, чем установка более поздней JDK. Предпочтительнее установить в системе более новую JDK.

Ошибка «Invalid target release» в компиляторе

Гораздо менее распространённый, но вполне допустимый вариант – вы компилируете исходники, напрямую вызывая компилятор Java javac. Причина проблемы здесь та же – более старый компилятор не знает о существовании более новой версии Java, под которую вы хотите скомпилировать байт код.

Решение проблемы

Сначала проверьте версию компилятора:

javac -version

Затем проверьте, какую версию вы указываете с помощью опции -target.

Если версия компилятора ниже запрашиваемой версии, вам нужно либо передавать в опции компилятора более низкую версию, либо обновить JDK.

Ошибка «Invalid target release» при указании несуществующей версии Java

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

Решение ошибки «invalid target release»