MacOS(Catalina)系统Java版本混淆:如何确认多版本安装及配置Java11路径
问题解答
1. 版本安装状态确认
你本机已经同时安装了Java 8和Java 11两个版本:
- 最初执行
java -version输出1.8.x版本信息,说明你之前已经安装了Java 8,且当前系统默认的Java路径指向Java 8 - Homebrew返回结果中
java11 ✔的标识,说明Java 11已经通过Homebrew成功安装完成,只是还没有配置到系统默认路径中。
2. 验证已安装的所有JDK版本
执行以下macOS自带的Java_home工具命令,可以查看本机所有已安装的JDK版本和对应安装路径:
/usr/libexec/java_home -V
输出会类似以下格式,你可以清晰看到两个版本的存在:
Matching Java Virtual Machines (2): 11.0.19 (x86_64) "Oracle Corporation" - "Java SE 11.0.19" /Library/Java/JavaVirtualMachines/jdk-11.0.19.jdk/Contents/Home 1.8.0_251 (x86_64) "Oracle Corporation" - "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_251.jdk/Contents/Home
3. 指定使用Java 11的方法
3.1 临时生效(仅当前终端窗口有效)
执行以下命令即可在当前窗口直接切换到Java 11:
export JAVA_HOME=`/usr/libexec/java_home -v 11`
执行后可以用java -version验证版本是否已经切换为11。
3.2 永久生效(所有终端窗口默认使用Java 11)
根据你使用的shell类型编辑对应的配置文件:
- 如果是zsh(macOS Catalina及以后默认shell),编辑
~/.zshrc文件 - 如果是bash,编辑
~/.bash_profile或~/.bashrc文件
在文件末尾添加以下内容:
# 设置默认Java版本为11 export JAVA_HOME=`/usr/libexec/java_home -v 11`
保存后执行source ~/.zshrc(对应zsh)或者source ~/.bash_profile(对应bash)让配置立即生效,之后所有新打开的终端默认都会使用Java 11。
3.3 按需切换版本
如果之后需要切回Java 8,只需要把上面命令里的版本号改成1.8即可:
# 临时切换到Java8 export JAVA_HOME=`/usr/libexec/java_home -v 1.8`
内容的提问来源于stack exchange,提问作者leo_liu_junior
相关产品推荐
相关产品推荐

