Решение ошибки «Неверный целевой выпуск» в Java: быстрые исправления и обходные пути

Вы Java-разработчик, который столкнулся с неприятным сообщением об ошибке «org.codehaus.plexus.compiler.CompilerException: ошибка: неверный целевой выпуск: 17»? Не волнуйтесь, вы не одиноки! Эта ошибка обычно возникает, когда вы пытаетесь скомпилировать код Java с более высокой целевой версией, чем та, которую поддерживает ваш Java Development Kit (JDK). В этой статье блога мы подробно рассмотрим эту проблему и предложим несколько способов ее решения.

Но сначала давайте разберем сообщение об ошибке. Часть «org.codehaus.plexus.compiler.CompilerException» указывает, что ошибка возникает из-за подключаемого модуля компилятора Plexus, обычно используемого в системах сборки, таких как Maven. Конкретное сообщение об ошибке «ошибка: неверный целевой выпуск: 17» предполагает, что вы пытаетесь скомпилировать свой код с помощью Java 17, но ваш текущий JDK не поддерживает эту версию.

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

  1. Проверьте версию JDK. Проверьте версию установленного JDK, выполнив команду java -versionв терминале или командной строке. Убедитесь, что указанная версия соответствует целевой версии, которую вы пытаетесь скомпилировать.

  2. Обновите JDK. Если ваша версия JDK устарела, вам может потребоваться обновить ее до версии, поддерживающей желаемый целевой выпуск. Посетите официальный веб-сайт Java или веб-сайт вашего провайдера JDK, чтобы загрузить и установить последнюю версию JDK.

  3. Настройте свою систему сборки. Если вы используете такой инструмент сборки, как 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.

  4. Используйте кросс-компиляцию. Если вы хотите скомпилировать свой код с более поздней версией Java, но при этом использовать более старую версию (по соображениям совместимости), вы можете включить кросс-компиляцию. Это позволяет вам использовать языковые возможности более новой версии, создавая при этом байт-код, совместимый со старой версией. Например, для компиляции совместимости с Java 8 с использованием Java 17 вы можете использовать следующую команду:

    javac -source 1.8 -target 1.8 MyClass.java

    Замените 1.8на желаемую исходную и целевую версии.

  5. Рассмотрите возможность использования сторонних инструментов. Доступны сторонние инструменты, такие как библиотеки Retrolambda и Retrotranslator, которые позволяют использовать новые функции Java в старых версиях Java. Эти инструменты помогут вам преодолеть ограничения, налагаемые вашей версией JDK.

Следуя этим методам, вы сможете устранить ошибку «неверный целевой выпуск» и успешно скомпилировать код Java. Не забудьте выбрать метод, который лучше всего подходит для вашей конкретной ситуации.

В заключение, появление ошибки «org.codehaus.plexus.compiler.CompilerException: error:valid target Release: 17» в Java может расстраивать, но это не непреодолимая проблема. Благодаря методам, описанным в этой статье, теперь у вас есть ряд возможностей устранить ошибку и продолжить кодирование с использованием нужной версии Java.