В этой статье
- В чем на самом деле проблема?
- 3. Fix invalid target release error in IDE
- 2. Fix invalid target release error by changing Maven’s Java version
- How Error:java: error: release version 5 not supported in IntelliJ IDEA Ultimate Occurs ?
- How To Solve Error:java: error: release version 5 not supported in IntelliJ IDEA Ultimate?
- Solution 1: Change target bytecode version
- 2. Solution – Update JAVA_HOME
- Solution 3 : try to change the Java version
- Solution 2: Add this code in build plugin in POM file
- Правильные Решения
- Используйте более старый JDK
- Измените желаемый уровень целевого языка
- Проекты на основе Maven
В чем на самом деле проблема?
Чтобы найти правильное решение для всех типов Java-проектов, независимо от инструмента сборки, давайте углубимся в реальную проблему.
За более чем 20-летнюю историю Java прошла через несколько основных версий. Каждый из них представил новую версию формата двоичных файлов, а иногда и языковые функции (например, перечисления в Java 5, лямбды в Java 8, модули в Java 9, var в Java 10, клиент HTTP-2 Java 11 … ). Тем не менее, Java и ее виртуальная машина обладают высокой обратной совместимостью. Вы можете взять двоичные файлы 20-летней давности, и они будут работать с последней версией Java просто отлично (применяются исключения).
Компилятор Java, который генерирует двоичные файлы из исходных файлов Java, поддерживает кросс-компиляцию на различные языковые уровни, то есть создает эти двоичные файлы в форматах разных версий Java. Однако иногда поддержка более старых языковых уровней прекращается. Начиная с Java 9, компилятор больше не может генерировать двоичные файлы Java 5. Если компилятор теперь запускается – прямо или косвенно через средство сборки – с целевой версией Java 5, он покажет сообщение об ошибке release version 5 not supported.
3. Fix invalid target release error in IDE
If you encounter the Maven error invalid target release in your IDE such as Eclipse or Spring Tool Suite, follow these steps:
– Open the Run Configurations dialog (Go to menu Run > Run Configurations)
– Select the Run configuration that you use to run Maven build
– Click JRE tab. Then choose the Runtime JRE that has version greater than or equal to your project’s Java version.
Refer to this article to learn more: How to manage JRE installations in Eclipse.
To see how to fix the Maven build error invalid target release in action, watch the following video:
Video:
2. Fix invalid target release error by changing Maven’s Java version
Apply this solution if the project’s Java version cannot be lower. That means you need to have another JDK newer than the one that runs Maven. You can check by typing:
java -version
Or:
mvn -v
You need to install a newer JDK and then update JAVA_HOME or PATH environment variables. Follow my guides here (for example, install JDK 17):
- Download and install Oracle JDK 17
- How to set JAVA_HOME environment variable
Note that you need to open a new command prompt window after updating the environment variables.
How Error:java: error: release version 5 not supported in IntelliJ IDEA Ultimate Occurs ?
Today I am just trying to run my simple java maven project in my IntelliJ IDEA Ultimate And I am facing the following error.
Error:java: error: release version 5 not supported
How To Solve Error:java: error: release version 5 not supported in IntelliJ IDEA Ultimate?
- How To Solve Error:java: error: release version 5 not supported in IntelliJ IDEA Ultimate?
To Solve Error:java: error: release version 5 not supported in IntelliJ IDEA Ultimate Open Your IDE Setting. Then Open Build Execution, Deployment Then Select Compiler. Then Just Scroll down to Maven and java compile In the right panel will be a list of modules and their associated java compile version “target bytecode version.” Select a version >1.5. You may need to upgrade your JDK if one is not available. Preferences > Build, Execution, Deployment > Compiler > Java Compiler > Target bytecode version. Setting this value fixed the error for me
- Error:java: error: release version 5 not supported in IntelliJ IDEA Ultimate
To Solve Error:java: error: release version 5 not supported in IntelliJ IDEA Ultimate Open Your IDE Setting. Then Open Build Execution, Deployment Then Select Compiler. Then Just Scroll down to Maven and java compile In the right panel will be a list of modules and their associated java compile version “target bytecode version.” Select a version >1.5. You may need to upgrade your JDK if one is not available. Preferences > Build, Execution, Deployment > Compiler > Java Compiler > Target bytecode version. Setting this value fixed the error for me
Solution 1: Change target bytecode version
- Open Your IDE Setting.
- Then Open Build Excecution, Deployment
- Then Select Compiler.
- Then Just Scroll down to Maven and java compile
- In the right panel will be a list of modules and their associated java compile version “target bytecode version.”
- Select a version >1.5.
- You may need to upgrade your jdk if one is not available.
- Preferences > Build, Execution, Deployment > Compiler > Java Compiler > Target bytecode version. Setting this value fixed the error for me
2. Solution – Update JAVA_HOME
Updating the JAVA_HOME environment variable and ensuring it points to the correct JDK.
2.1 For macOS, open the ~/.zshenv and update the JAVA_HOME to Java 17
The JAVA_HOME is pointing to Java 11.
~/.zshenv
export JAVA_HOME=$(/usr/libexec/java_home -v 11)
We upgraded the JAVA_HOME to Java 17.
~/.zshenv
export JAVA_HOME=$(/usr/libexec/java_home -v 17)
2.2 source the ~/.zshenv or reopen the shell to reflect the change of the JAVA_HOME.
Terminal
source ~/.zshenv
2.3 Recheck Maven’s Java version.
Terminal
mvn -version
Apache Maven 3.8.3 (ff8e977a158738155dc465c6a97ffaf31982d739)
Maven home: /usr/local/Cellar/maven/3.8.3/libexec
Java version: 17, vendor: Oracle Corporation, runtime: /Users/yongmookkim/Library/Java/JavaVirtualMachines/openjdk-17/Contents/Home
Default locale: en_MY, platform encoding: UTF-8
OS name: “mac os x”, version: “11.6”, arch: “x86_64”, family: “mac”
Note
For Windows or Linux, find the JAVA_HOME environment variable and ensure it is pointing to the correct JDK.
Solution 3 : try to change the Java version
Here First of all set the language level/release versions in pom.xml Like this.
Then Just try to change the Java version.
- Go to File -> Select Project structure -> Select Project -> Then Project SDK -> set It to 11
- Go to File -> Select Project structure -> Select Project -> Select Project language level -> set to 11
- Go to File -> Select Project structure -> Select Project -> Select Modules -> select Sources -> set it to 11
- Go to setting -> Open Build, Execution, Deployment -> Slect Compiler -> Then select Java Compiler -> Change Project bytecode version to 11
- Go to setting -> Open Build, Execution, Deployment -> Slect Compiler -> Then select Java Compiler -> Select Module -> Change it to 11
Solution 2: Add this code in build plugin in POM file
Правильные Решения
Итак, ваш JDK слишком новый, чтобы генерировать двоичные файлы Java 5. Есть два решения для решения этой проблемы.
Используйте более старый JDK
Как упоминалось ранее, JDK9 отказался от поддержки кросс-компиляции в двоичные файлы Java 5. Это означает, что до тех пор, пока вы используете JDK 8 или ниже, вы действительно можете создавать двоичные файлы Java 5. Однако этот метод НЕ рекомендуется. Не должно быть никаких причин придерживаться Java 5 в рабочей среде выполнения. JDK 5 не поддерживается с 2015 года, и исправления безопасности больше не предоставляются.
Измените желаемый уровень целевого языка
Вместо кросс-компиляции в двоичные файлы Java 5 вам следует создавать двоичные файлы, соответствующие версии рабочей среды Java runtime environment. Это должно быть по крайней мере Java 8 до 2023 года, чтобы получить исправления безопасности. Смотрите также Историю версий Java в Википедии. Тем не менее, я рекомендую использовать Java 11, чтобы использовать различные новые функции, введенные между ними, и в то же время оставаться на версии LTS.
Итак, как же тогда изменить целевую версию?
Проекты на основе Maven
По очень веским причинам Maven по-прежнему широко используется в экосистеме Java. Однако Maven довольно старый, как и некоторые настройки по умолчанию. Одним из которых является уровень языка, который по умолчанию равен Java 1.5, независимо от используемого вами JDK.
В обычных проектах Maven вы можете вставить вышеупомянутый код в свой конфигурационный файл сборки pom.xml чтобы установить уровень целевого языка.
1.81.8
В проектах Spring Boot код немного меняется на
1.8
После изменения pom.xml вам необходимо повторно импортировать все проекты Maven в IntelliJ IDEA. Самый простой способ сделать это – нажать cmd + shift + A (shift + ctrl + A в Windows/Linux), а затем просто начать печатать.
- https://javascopes.com/proper-solutions-for-error-java-release-version-5-not-supported-4m5f-98a40eb5/
- https://www.codejava.net/tools/maven/fix-error-invalid-target-release
- https://exerror.com/errorjava-error-release-version-5-not-supported-in-intellij-idea-ultimate/
- https://mkyong.com/maven/maven-error-invalid-target-release-17/