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

macOS下Maven与java -version返回Java版本不一致问题咨询

macOS下/usr/bin/java未设置JAVA_HOME时的JDK查找逻辑
  • 首先要明确:/usr/bin/java 不是某个JDK自带的真实可执行文件,而是macOS系统内置的Java虚拟机框架提供的调度 wrapper 程序,它的核心调度规则如下:
    1. 优先读取当前shell环境的JAVA_HOME变量,如果变量存在且指向合法的JDK路径,直接调用该路径下的Java程序
    2. 若未检测到JAVA_HOME变量,会扫描系统注册路径/Library/Java/JavaVirtualMachines/下的所有JDK安装包,默认选择优先级最高(通常是版本最高)的合法JDK作为调用目标
  • 你场景里默认调用Java11的原因:
    你通过Homebrew安装的OpenJDK16默认不会自动注册到/Library/Java/JavaVirtualMachines/系统路径下,系统扫描该目录时只能识别到你之前安装的AdoptOpenJDK11,因此默认调用该版本。
  • 验证方法:
    执行系统自带的/usr/libexec/java_home -V命令,可以列出所有被系统识别的JDK列表,你会看到只有Java11出现在列表中,这就是默认调用它的原因。
    如果要让系统默认识别Homebrew安装的OpenJDK16,可以手动执行软链命令完成注册:
    sudo ln -sfn /usr/local/opt/openjdk/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk.jdk
    

内容的提问来源于stack exchange,提问作者sr-01-01

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 01:36:00