怎么换Java运行版本

用springboot报了如下错误

Exception in thread "main" java.lang.UnsupportedClassVersionError: org/springframework/boot/SpringApplication has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 60.0
at java.base/java.lang.ClassLoader.defineClass1(Native Method)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1010)
at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150)
at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:855)
at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:753)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:676)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:634)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:182)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:519)
at com.cyk.lead.LeadApplication.main(LeadApplication.java:9)

之前用spring的时候也遇到过这个错误,当时把pom里依赖的版本全部降低就好了,但这次springboot里只有个起步依赖,也没有版本号,下不了手,就准备提高java的运行版本,但不知道应该在哪改

把Springboot的版本降到3.0以下

这个报错是java版本过高,现在项目中配置的java版本是多少的? 目前使用java8的数量比较多,可以适应大部分场景。

有几种解决方法,

  1. 调整java版本

执行 echo %JAVA_HOME% 和 java -version,之后设置JAVA_HOME版本到java17或者更高,会fix这个问题

  1. 另外就是编译的时候 javac -target 8 com/rollbar/ExampleApp.java,可以改这个target后面的参数

  2. 更改IDE版本,类似下图 去改更高java版本

img

  1. 如果是maven版本,需要改编译版本,如下代码
<project xmlns="http://maven.apache.org/POM/4.0.0"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
...
   <properties>
       <maven.compiler.source>17</maven.compiler.source>
       <maven.compiler.target>8</maven.compiler.target>
   </properties>
...
</project>

---

希望能够解决题主,和遇到类似问题的同学。