mvn compile 编译失败,错误: 不再支持源选项 6 请使用 7 或更高版本

概述:mac上 mvn compile 失败,提示工程jdk版本低,但之前都可以。
原因:jdk版本变成14导致 (mac,最近安装了jdk14,java_home默认选择最高的jdk版本)

最近写项目,编译的时候发现使用 mvn clean compile 编译失败。报错信息如下:

[ERROR] COMPILATION ERROR : 
[INFO] ---------------------------------------------------
[ERROR] Failure executing javac, but could not parse the error:
错误: 不再支持源选项 6。请使用 7 或更高版本。
错误: 不再支持目标选项 6。请使用 7 或更高版本。

因为项目比较久远,maven中指定的jdk版本是1.6。

然后网上搜索解决办法,都是说在pom.xml中或maven的setting.xml中修改java版本的。

但是我之前都是可以编译成功的!所以根本不是因为pom中jdk版本的问题。(并且对于这种比较久远的工程随便升级jdk版本不太好,容易引发其他未知问题)

然后发现,使用idea里面的maven插件能够编译成功!!!

那么就有线索了,命令行中使用的maven不行,但是idea中的maven可以。于是看一下maven的版本信息,
mvn -version

Apache Maven 3.6.3 
Maven home: /Users/xxx/develop/tools/apache-maven-3.6.3
Java version: 14.0.2, vendor: Oracle Corporation, runtime: /Users/xxx/Library/Java/JavaVirtualMachines/openjdk-14.0.2/Contents/Home
Default locale: zh_CN_#Hans, platform encoding: UTF-8
OS name: "mac os x", version: "10.15.6", arch: "x86_64", family: "mac"

!!!java version:14

又看了一下配置文件

export JAVA_HOME=$(/usr/libexec/java_home)

JAVA_HOME路径不是写死的。而是从/usr/libexec/java_home读取的。

那就用这个查一下java版本
/usr/libexec/java_home -V

Matching Java Virtual Machines (2):
    14.0.2, x86_64:	"OpenJDK 14.0.2"	/Users/xxx/Library/Java/JavaVirtualMachines/openjdk-14.0.2/Contents/Home
    1.8.0_251, x86_64:	"Java SE 8"	/Library/Java/JavaVirtualMachines/jdk1.8.0_251.jdk/Contents/Home

/Users/xxx/Library/Java/JavaVirtualMachines/openjdk-14.0.2/Contents/Home

原来之前安装了jdk14,然后jdk被/usr/libexec/java_home自动切换到最高的14去了。

然后就改配置文件,把jdk切回1.8的。编译成功。

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值