SpringBoot己更新到3后,使用的JAVA版本最低要求JAVA17,如果低于这个版本就是报错:
问题一:类文件具有错误的版本 61.0, 应为 52.0。
解决就只有升级JAVA-sdk:
官方下载地址:JAVA20-17
官方推荐更好的sdk版本:https://bell-sw.com/pages/downloads/
问题二:无效的目标版本8 ,9,1.8类似的错误
这个问题是因为项目中指定的Language Level和即将编译运行的Language Level不一致。
只要在项目中使用maven-compiler-plugin配置一下就行。(网上说的设置这里-设置那里,那些都不需要做)
操作如下:
找到项目的POM文件,
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>指定你安装的JAVA版本如:17</source> <target>指定你安装的JAVA版本如:17</target> <encoding>urt-8</encoding> </configuration> </plugin></plugins></build>
特别说明:
java编译版本的优行级如下:
如果工程我父子工程,子工程的maven-compiler-plugin优先,如果子工程没有指定maven-compiler-plugin,将使用idea项目设置,最后是idea软件里面的settings-JavaComplier设置。
所以说只要指定了子工程的<build>其他都可以不用管。
说明二:
还有一种情况是你在项目中maven-compiler-plugin指定了安装的版本号,还是报错
无效的目标版本 17。还有可能是idea版本低了。
因为正常情况下,装了JAVA17版本后,在项目的LanguageLevel里面可以明显的看到除了以前的Java8是显示的最高到13的LanguageLevel会多出来,17版的LanguageLevel如18、17等。如果不能出来就表示idea版本可能低了,没有读到新装的java的LanguageLevel。如果这样的话,不管你怎么设置都会报错。
以下是我安装了java20后的languagelevel:
项目中的设置如下就可以了,其他地方不用管:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>20</source> <target>20</target> <encoding>utf-8</encoding> </configuration> </plugin>