报错:[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project xxxx: Fatal error compiling: 错误: 不支持发行版本 17 -> [Help 1]
解决结论:安装 JDK 17,并在 VSCode 中做好相应配置(确保项目中使用的 JDK 版本一致)。
问题描述:
在尝试进行 Maven 相关操作或项目打包时,我执行了以下命令:
1 | mvn clean package -Pprod -DskipTests |
注:-Pprod 指使用生成的配置文件进行打包,-DskipTests 指只是打包而不进行测试
执行该命令后,报出下面的错误:
我的springboto项目版本为3.3.4,项目java版本为17(JDK Runtime JDK: JavaSE-17),
maven版本为:Apache Maven 3.9.6 ,maven插件版本为3.8.1
最初我怀疑是 Maven 的问题,尝试更换多个版本的 Maven 插件,但问题依旧未解决。经过在线搜索,我发现没有有效的解决方案。最终,我注意到电脑的 Java 版本为 11.0.22,这与 Spring Boot 中配置的 Java 版本不一致,导致了错误。
问题原由:
在 Vscode 中, Springboot 项目开发选择使用的 JDK 可以不是自己电脑上已有的 JDK,当进行项目开发时 Springboot 能正常运行,但是进行 Maven 操作或者项目打包时,使用的是电脑上已有的 JDK 进行打包,项目中使用的 JDK 与电脑当中使用的 JDK 不一致,就会报错。
解决办法:
1、前往官网下载 JDK(项目中使用的 JDK 版本):
https://www.oracle.com/cn/java/technologies/downloads/#jdk17-windows
2、配置环境
2.1 新建变量,变量值为 JDK 安装路径
2.2 编辑变量,新增:%JAVA_HOME%\bin
,把新的 JDK 17 上移,这样系统默认使用17,而不是使用 JDK 11。可在终端输入 java -version
看当前使用的版本。
3、修改 Vscode 配置。 ctrl+.
,进入设置,搜索 jdk
,点击 在 setting.json 中编辑
添加配置
1 | "maven.terminal.useJavaHome": true, |
4、如果 Vscode 终端显示版本没变,重开 Vscode 即可。重新执行打包命令,问题解决。
总结
在开发 Java 应用程序时,使用一致的 JDK 版本,这样可以减少兼容性问题和潜在错误。
如果您觉得这篇博客对您有所帮助,欢迎分享给更多人。如果您发现博客中使用的图片存在版权问题,请及时联系作者,我们将尽快处理并删除相关内容。感谢您的支持!