Вы Java-разработчик, который столкнулся с неприятным сообщением об ошибке «org.codehaus.plexus.compiler.CompilerException: ошибка: неверный целевой выпуск: 17»? Не волнуйтесь, вы не одиноки! Эта ошибка обычно возникает, когда вы пытаетесь скомпилировать код Java с более высокой целевой версией, чем та, которую поддерживает ваш Java Development Kit (JDK). В этой статье блога мы подробно рассмотрим эту проблему и предложим несколько способов ее решения.
Но сначала давайте разберем сообщение об ошибке. Часть «org.codehaus.plexus.compiler.CompilerException» указывает, что ошибка возникает из-за подключаемого модуля компилятора Plexus, обычно используемого в системах сборки, таких как Maven. Конкретное сообщение об ошибке «ошибка: неверный целевой выпуск: 17» предполагает, что вы пытаетесь скомпилировать свой код с помощью Java 17, но ваш текущий JDK не поддерживает эту версию.
Теперь давайте рассмотрим некоторые способы устранения этой ошибки:
-
Проверьте версию JDK. Проверьте версию установленного JDK, выполнив команду
java -versionв терминале или командной строке. Убедитесь, что указанная версия соответствует целевой версии, которую вы пытаетесь скомпилировать. -
Обновите JDK. Если ваша версия JDK устарела, вам может потребоваться обновить ее до версии, поддерживающей желаемый целевой выпуск. Посетите официальный веб-сайт Java или веб-сайт вашего провайдера JDK, чтобы загрузить и установить последнюю версию JDK.
-
Настройте свою систему сборки. Если вы используете такой инструмент сборки, как Maven или Gradle, вы можете указать целевую версию выпуска в конфигурации вашего проекта. Для Maven вы можете добавить в файл
pom.xmlследующую конфигурацию:<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>17</source> <target>17</target> </configuration> </plugin> </plugins> </build>Отрегулируйте значения
sourceиtargetв соответствии с желаемой версией Java. -
Используйте кросс-компиляцию. Если вы хотите скомпилировать свой код с более поздней версией Java, но при этом использовать более старую версию (по соображениям совместимости), вы можете включить кросс-компиляцию. Это позволяет вам использовать языковые возможности более новой версии, создавая при этом байт-код, совместимый со старой версией. Например, для компиляции совместимости с Java 8 с использованием Java 17 вы можете использовать следующую команду:
javac -source 1.8 -target 1.8 MyClass.javaЗамените
1.8на желаемую исходную и целевую версии. -
Рассмотрите возможность использования сторонних инструментов. Доступны сторонние инструменты, такие как библиотеки Retrolambda и Retrotranslator, которые позволяют использовать новые функции Java в старых версиях Java. Эти инструменты помогут вам преодолеть ограничения, налагаемые вашей версией JDK.
Следуя этим методам, вы сможете устранить ошибку «неверный целевой выпуск» и успешно скомпилировать код Java. Не забудьте выбрать метод, который лучше всего подходит для вашей конкретной ситуации.
В заключение, появление ошибки «org.codehaus.plexus.compiler.CompilerException: error:valid target Release: 17» в Java может расстраивать, но это не непреодолимая проблема. Благодаря методам, описанным в этой статье, теперь у вас есть ряд возможностей устранить ошибку и продолжить кодирование с использованием нужной версии Java.