macOS安装多版本JDK切换与管理

  • 发表于
  • macOS

实际开发中JDK8作为工作使用,JDK11、13等作为学习使用,存在多版本JDK切换场景,通过切换配置文件中JAVA_HOME路径即可实现JDK版本切换。

1.下载JDK并安装

备注:JDK下载前需先注册Oracle账号

选择macOS Installer版本,下载完后逐个安装即可

安装完成后可在/Library/Java/JavaVirtualMachines路径下查看已安装版本,记下这些版本,在配置环境变量中会使用。或可看所有JDK路径命令如下:

/usr/libexec/java_home -V

2.配置环境变量

打开 bash_profile,增加如下配置,jdk版本为步骤一安装时的版本

vim .bash_profile
# Java
export JAVA_8_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_301.jdk/Contents/Home
export JAVA_11_HOME=/Library/Java/JavaVirtualMachines/jdk-11.0.12.jdk/Contents/Home
export JAVA_13_HOME=/Library/Java/JavaVirtualMachines/jdk-13.0.2.jdk/Contents/Home

# Set Default JDK1.8
export JAVA_HOME=$JAVA_8_HOME

# Shortcuts
alias jdk8="export JAVA_HOME=$JAVA_8_HOME"
alias jdk11="export JAVA_HOME=$JAVA_11_HOME"
alias jdk13="export JAVA_HOME=$JAVA_13_HOME"

export CLASS_PATH=$JAVA_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin

保存修改并退出bash_profile文件,执行bash_profile使添加的配置生效

source .bash_profile

3.验证

通过 java -version 可查看当前使用的jdk版本,通过步骤二中配置的 alias 可以快速切换jdk版本

➜ ✗ /usr/libexec/java_home -V
Matching Java Virtual Machines (3):
11.0.15.1 (x86_64) "Oracle Corporation" - "Java SE 11.0.15.1" /Library/Java/JavaVirtualMachines/jdk-11.0.15.1.jdk/Contents/Home
1.8.321.07 (x86_64) "Oracle Corporation" - "Java" /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
1.8.0_91 (x86_64) "Oracle Corporation" - "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk/Contents/Home
/Library/Java/JavaVirtualMachines/jdk-11.0.15.1.jdk/Contents/Home

配置.bash_profile重启后不生效问题解决

~/.bash_profile 中配置了环境变量, 可是每次重启终端后配置的不生效.需要重新执行 : source ~/.bash_profile,发现zsh加载的是 ~/.zshrc文件,而 ‘.zshrc’ 文件中并没有定义任务环境变量。

解决办法:

~/.zshrc文件最后,增加一行:

source ~/.bash_profile

关闭终端后重启,.bash_profile可以生效