如何在Mac OS系统中将JDK 8设置为默认JDK?
1. 确认本机已安装的所有JDK版本
执行以下命令列出所有系统已识别的JDK:/usr/libexec/java_home -V
执行后会输出类似如下内容,确认JDK 1.8.x版本存在:
Matching Java Virtual Machines (2):
16.0.2 (x86_64) "Oracle Corporation" - "Java SE 16.0.2" /Library/Java/JavaVirtualMachines/jdk-16.0.2.jdk/Contents/Home
1.8.0_341 (x86_64) "Oracle Corporation" - "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_341.jdk/Contents/Home
复制JDK 8对应的完整路径备用。
2. 修改对应shell的配置文件
首先确认当前使用的shell类型,执行命令:echo $SHELL
- 如果输出为
/bin/bash,编辑~/.bash_profile文件 - 如果输出为
/bin/zsh(macOS Catalina及以上版本默认),编辑~/.zshrc文件
在配置文件末尾添加如下内容,替换JAVA_HOME后的路径为上一步复制的JDK 8路径:
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_341.jdk/Contents/Home export PATH=$JAVA_HOME/bin:$PATH
注意:PATH配置需要将JDK 8的bin目录放在$PATH前面,保证系统优先读取该路径下的java命令,之前配置不生效的核心原因就是路径放错了位置、且没有指定到具体版本的bin目录
如果需要灵活切换JDK版本,可以额外添加别名配置:
alias jdk8="export JAVA_HOME=`/usr/libexec/java_home -v 1.8`" alias jdk16="export JAVA_HOME=`/usr/libexec/java_home -v 16`"
后续只需在终端输入jdk8即可临时切换到JDK 8,输入jdk16切回JDK 16。
3. 生效配置并验证
执行对应命令生效配置:
- bash用户:
source ~/.bash_profile - zsh用户:
source ~/.zshrc
执行java -version验证版本,输出类似如下内容即为配置成功:
java version "1.8.0_341"
Java(TM) SE Runtime Environment (build 1.8.0_341-b10)
Java HotSpot(TM) 64-Bit Server VM (build 25.341-b10, mixed mode)
内容的提问来源于stack exchange,提问作者Britchi3

