「Mac 管理多版本JDK」
一、需求
偶然发现目前的在使用的Java JDK还是是1.8版本的,实际开发过程中时常会遇到使用高版本的JDK,如JDK11,最好的方式是本地管理多个版本的JDK实现自主切换。
- 本机系统
macOS Monterey 12.2.1
- 本地JDK版本
1.8.0_271 (x86_64)
11.0.14 (x86_64)
二、配置
1.下载JDK11
ORACLE官网下载 JDK11,现在下载需要注册账号,填一下基本信息就OK,可选的有安装包的形式 .dmg和tar形式,为了方便直接下载的安装包 .dmg.
下载后直接用安装包安装。检查是否安装成功执行代码:
/usr/libexec/java_home -V
会显示本地所有已经安装的Java JDK版本信息,如下图:
此时JDK 11已经安装成功,但是本地默认的使用环境还是JDK 1.8,查看本地Java版本:
java -version
2.配置默认JDK版本
打开 .zshrc配置文件,修改默认的JAVA JDK版本
open -e ~/.zshrc
为了方便切换,要给JDK设置对应的别名,环境变量的配置等信息:
#java config
export JAVA_8_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_271.jdk/Contents/Home"
export JAVA_11_HOME="/Library/Java/JavaVirtualMachines/jdk-11.0.14.jdk/Contents/Home"
#默认java11
export JAVA_HOME=$JAVA_11_HOME
#config alias
alias jdk8="export JAVA_HOME=$JAVA_8_HOME"
alias jdk11="export JAVA_HOME=$JAVA_11_HOME"
export CLASS_PATH=$JAVA_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin
关于Java JDK配置的部分,这里默认的版本是jdk11直接拷贝到.zshrc即可。使配置文件立即生效执行:
source ~/.zshrc
注意,可能会遇到如下错误:
/Users/sai/.zshrc:2: bad assignment
这是因为“=”两侧存在空格,这是不允许的如JAVA_11_HOME= "/Library/..."
正确的形式为JAVA_11_HOME="/Library/..."。
重新打开终端查看默认JDK版本:
java -version
可以看见,默认的已经变为JDK11了,切换的时候也很方便,如果要使用JDK 1.8版本则执行jdk8
,需要使用JDK11则执行 jdk11
,这里分别对应 .zshrc中的别名alias,以后需要增加新的JDK,操作也是一样的。