Mac下多版本JDK安装及管理

2,478 阅读1分钟

JDK下载 目前使用的Mac m2系列的,无所谓用的哪一种开源的OPEN JDK。按需下载,我自己下载了8,11,18三个版本。

1、查看已安装的jdk版本极其目录

/usr/libexec/java_home -V

image.png

2、配置环境变量并对JDK版本进行管理。

首先执行命令 vim ~/.bash_profile 修改环境变量,MAC建议此处修改环境变量,而不是修改/etc/profile。几种配置文件区别如下:

文件内容
/etc/profile应用于所有用户的全局配置脚本
~/.bash_profile用于私人的启动文件。可以用来扩展或重写全局配置脚本中的设置
~/.bash_login如果文件 ~/.bash_profile 没有找到,bash会尝试读取这个脚本
~/.profile如果文件 ~/.bash_profile 和 ~/.bash_login 都没有找到,bash会试图读取这个文件。这是基于 Debian 发行版的默认配置,比方说 Ubuntu

3、添加以下内容到 bash_profile 文件中

# 多版本JDK 配置
export JAVA_8_HOME=/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home
export JAVA_11_HOME=/Library/Java/JavaVirtualMachines/zulu-11.jdk/Contents/Home
export JAVA_18_HOME=/Library/Java/JavaVirtualMachines/zulu-18.jdk/Contents/Home

PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar

export JAVA_HOME=$JAVA_8_HOME

# alias命令动态切换JDK版本
alias jdk8="export JAVA_HOME=$JAVA_8_HOME"
alias jdk11="export JAVA_HOME=$JAVA_11_HOME"
alias jdk18="export JAVA_HOME=$JAVA_18_HOME"

export PATH
export CLASSPATH
4、iTerm2 重启后 alias 配置无效

如果配置 oh-my-zsh 的话,则会把终端shell从 bash 替换到 zsh。

  • zsh 对应的 zshrc
  • bash 对应的是 basic
5、iTerm2 解决方案。 ~/.zshrc 添加如下配置,在文件最初始地方添加即可。
if [ -f ~/.bash_profile ]; then
   source ~/.bash_profile
fi