执行mvn clean package时遇release version 17不支持错误求助
解决Maven编译Spring Boot项目时「release version 17 not supported」错误
问题根源分析
你遇到的错误核心原因有两个:
- 当前
JAVA_HOME指向的是JRE(Java Runtime Environment),编译需要JDK(Java Development Kit)中的javac编译器,JRE不包含该工具。 - Maven编译配置指定了JDK 17作为release版本,但实际可用的JDK环境不匹配,或Maven未正确识别到可用JDK。
具体解决步骤
1. 修正JAVA_HOME指向JDK
你的JAVA_HOME当前指向/usr/lib/jvm/jre-21-openjdk-...,这是JRE路径,必须改为JDK安装路径:
- 查找系统已安装的JDK:执行
ls /usr/lib/jvm/,找到类似java-17-openjdk-...或java-21-openjdk-...的JDK目录(目录名不含jre)。 - 修改环境变量:
- 临时生效:终端执行
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-xxx(替换为实际JDK路径) - 永久生效:编辑
~/.bashrc或~/.zshrc,添加上述export命令,再执行source ~/.bashrc刷新。
- 临时生效:终端执行
- 验证:执行
javac -version,确认输出版本为17或更高(如javac 17.0.8),若提示command not found,说明路径仍不正确。
2. 检查并修正pom.xml编译配置
打开项目pom.xml,找到maven-compiler-plugin配置,确保指定的release版本与JDK兼容:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <!-- 用JDK17则保留17;用JDK21可改为21或保持17(JDK向下兼容) --> <release>17</release> <!-- 也可显式指定source和target替代release --> <!-- <source>17</source> --> <!-- <target>17</target> --> </configuration> </plugin>
若Spring Boot版本较旧,需升级maven-compiler-plugin到支持JDK17/21的版本(如3.8.1及以上)。
3. 配置IntelliJ中Maven使用的JDK
除项目JDK配置外,确保Maven运行时用正确JDK:
- 打开IntelliJ的
Settings(快捷键Ctrl+Alt+S) - 进入
Build, Execution, Deployment > Build Tools > Maven > Runner - 在
JRE下拉菜单选择已安装的JDK(非JRE),如openjdk-17或openjdk-21 - 保存配置后重新执行
mvn clean package
4. 临时强制指定javac路径(应急方案)
若上述配置仍不生效,执行Maven命令时直接指定javac路径:
mvn clean package -Dmaven.compiler.executable=/usr/lib/jvm/java-17-openjdk/bin/javac
替换为你实际JDK中javac的位置。
5. 检查Maven全局配置(可选)
查看Maven的settings.xml(路径为~/.m2/settings.xml或Maven安装目录conf/settings.xml),确认无强制指定不兼容的JDK版本:
<!-- 若存在类似配置,确保jdk版本与环境匹配 --> <profiles> <profile> <id>jdk-config</id> <properties> <maven.compiler.source>17</maven.compiler.source> <maven.compiler.target>17</maven.compiler.target> </properties> </profile> </profiles>
内容的提问来源于stack exchange,提问作者LaijieJi
相关产品推荐
相关产品推荐

