You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Maven报invalid target release:12错误,JAVA_HOME已设为12如何解决?

解决Maven报错 "invalid target release: 12" 的方案

我来帮你排查这个Maven编译报错的问题——你遇到的invalid target release: 12,通常是Maven实际使用的JDK和你配置的版本不匹配导致的,咱们一步步来解决:

1. 先确认Maven真正在用哪个Java版本

你提到mvn -version显示了Maven 3.6.1,但没说它关联的Java版本。赶紧执行完整的mvn -version命令,看输出里的Java version字段——如果这里显示的不是12,那就是Maven没读取到你设置的JAVA_HOME,这是最常见的原因。

解决办法:

  • 在Linux环境下,确保JAVA_HOME的配置全局生效:
    编辑~/.bashrc或/etc/profile文件,添加以下内容(把/path/to/your/jdk12换成你实际的JDK12路径):
    export JAVA_HOME=/path/to/your/jdk12
    export PATH=$JAVA_HOME/bin:$PATH
    
    然后执行source ~/.bashrc(如果改的是/etc/profile就执行source /etc/profile)让设置生效,再重新运行mvn -version确认Java版本已经变成12。
  • 如果是在IDE里运行Maven,别忘检查IDE的配置:找到Maven的运行环境设置,确保它指定的JDK是12版本,而不是系统默认的旧JDK。

2. 检查javac版本是否和java匹配

你只验证了java -version是12,但Maven编译时用的是javac命令。执行javac -version看看,如果输出不是12,说明系统优先调用了旧版本的javac。

解决办法:

  • 按照步骤1的方式把JAVA_HOME/bin放到PATH的最前面,确保系统先找到JDK12的javac,再重新检查javac -version是否正确。

3. 优化Maven Compiler插件的配置

你的pom.xml里已经设置了source和target,但可以进一步明确配置,强制插件使用指定的JDK,避免歧义:

修改maven-compiler-plugin的配置,添加source、target、fork和executable参数:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-compiler-plugin</artifactId>
  <version>3.8.0</version>
  <configuration>
    <useIncrementalCompilation>true</useIncrementalCompilation>
    <!-- 明确指定编译的source和target版本 -->
    <source>12</source>
    <target>12</target>
    <!-- 强制插件使用JAVA_HOME下的javac,避免用系统默认的 -->
    <fork>true</fork>
    <executable>${JAVA_HOME}/bin/javac</executable>
    <compilerArgs>
      <arg>-parameters</arg>
      <arg>-Xlint:unchecked</arg>
      <arg>--enable-preview</arg>
    </compilerArgs>
  </configuration>
</plugin>

另外,更推荐使用maven.compiler.release替代单独的source和target,它会统一处理编译的版本兼容性(包括source、target和bootclasspath),配置更简洁可靠:

<properties>
  <maven.compiler.release>12</maven.compiler.release>
</properties>

4. 关于预览特性的小提醒

你用到了--enable-preview参数,Java的预览特性需要编译和运行时都启用该参数。如果后续运行项目,记得也要加上--enable-preview参数,否则会出现运行时错误。

按照上面的步骤逐一排查,应该就能顺利解决编译报错的问题了。

内容的提问来源于stack exchange,提问作者Arthur

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 06:41:13