前言
由于工作需要,需要在 Mac 系统中安装多个版本的JDK
,并且需要可以方便的版本切换。
找了半天方案,最终还是选择 AdoptOpenJDK
作为JDK
的载体。然后用Homebrew
来管理它的升级、卸载等。
安装
Requirement
- MacOS
- Homebrew The Missing Package Manager for macOS (or Linux) — Homebrew
更新
2021-11-15
更新 homebrew 中的部分依赖后,adoptopenjdk 中安装的 jdk 均无法正常启动 gradle,出现下面的异常。涉及版本:8,11,14
1
2Error: LinkageError occurred while loading main class org.gradle.launcher.daemon.bootstrap.GradleDaemon
java.lang.UnsatisfiedLinkError: java/util/zip/Inflater.initIDs()V而 openjdk 则无此问题,因此部分依赖改成了 openjdk 来处理。不过需要注意的是,安装完 openjdk 后,需要手动把 openjdk 链接到环境中去,否则无法被其他软件读取到。
1
sudo ln -sfn /usr/local/opt/openjdk@11/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-11.jdk
步骤
1. 只使用最新版本
如果对 JDK 的版本没有要求,而且想要 JDK 可以自动更新到最新,可以直接使用下面的命令安装
1 | $ brew install --cask adoptopenjdk |
2. 需要特定版本或者多个版本
为
brew
安装AdoptOpenJDK
的库这样,我们就可以用
brew
来安装AdoptOpenJDK
库下的OpenJDK
的任意版本了。1
brew tap AdoptOpenJDK/openjdk
安装自己需要的
JDK
1
brew install --cask adoptopenjdk14
至于可用的版本号,可以查询官方文档。或者使用
brew search adoptopenjdk
来检索。
3. 管理多个版本
当我们在 Mac 上安装多个版本的 JDK 的时候,系统会默认使用最新的版本。因此我们可以用java_home
命令在多个版本之间切换。为了便于操作,我们可以在 shell 的配置文件中添加一个 jdk
函数,用于快捷切换.
- 在
~/.bashrc
或者~/.zshrc
中,添加下面的代码(如果你用的是bash
,就修改bashrc
;如果用的是zsh
,则需要修改zshrc
)
1 | jdk() { |
通过
source
命令,把上面的修改生效在命令后中,直接通过
jdk
命令,切换版本
1 | jdk 1.8 |
如果想知道电脑上有哪些版本可用,可以用下面的命令查看:
1 | ➜ /usr/libexec/java_home -V |