需求:本机装有多个版本的 JDK ,希望能快速进行切换。

macOS中,jdk的安装路径为 /Library/Java/JavaVirtualMachines/

/usr/libexec/java_home 是 macOS 提供的工具,是一个简单的 java 版本管理工具。

image-20200729114414456

-h 可以查看使用帮助

image-20200729114430037

-v 可以查看本机安装对应的 jdk 路径:

image-20200729114530205

image-20200729114541535

image-20200729114550079

而如果你查看的版本并不存在:

image-20200729114609053

我们可以利用这个工具快速切换jdk,打开 .bash_profile,如果你是 zsh,就打开对应的配置文件,但是我使用了 zsh,还是配置了默认的 bash

增加如下配置:

# 动态设置 JDK 版本
export JAVA_8_HOME=`/usr/libexec/java_home -v 1.8`
export JAVA_11_HOME=`/usr/libexec/java_home -v 11`
export JAVA_12_HOME=`/usr/libexec/java_home -v 12`

# 默认版本 JDK8
export JAVA_HOME=$JAVA_8_HOME

# 快速切换 jdk 命令
alias jdk8="export JAVA_HOME=$JAVA_8_HOME"
alias jdk11="export JAVA_HOME=$JAVA_11_HOME"
alias jdk12="export JAVA_HOME=$JAVA_12_HOME"


使用 /usr/libexec/java_home -v 命令找到 对应 jdk 的具体安装位置,然后动态的导出。

使用效果:


➜  java -version
java version "1.8.0_172"
Java(TM) SE Runtime Environment (build 1.8.0_172-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.172-b11, mixed mode)


➜   jdk11

➜   java -version
openjdk version "11.0.2" 2019-01-15
OpenJDK Runtime Environment 18.9 (build 11.0.2+9)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.2+9, mixed mode)

image-20200729114844808

Q.E.D.

知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议

最是人间留不住,曾是惊鸿照影来。