macOS多版本Java共存

安装JDK

Eclipse Temurin 是AdoptOpenJDK的继承者和后继版本,提供与之前相同的高质量Java二进制文件。这些二进制文件完全开源,并通过了Java技术兼容性工具套件(TCK)的认证,确保它们符合Java规范。

1
2
3
4
5
6
7
8
# 安装Java 8
brew install --cask temurin8

# 安装Java 11
brew install --cask temurin11

# 安装Java 17
brew install --cask temurin17

如果提示找不到,需要先brew tap homebrew/cask-versions

jenv

jenv 是一个用于管理多个 Java 版本的命令行工具,可以在同一台设备上切换使用不同版本的 Java,无需手动更改环境变量。

安装jenv

1
brew install jenv

配置环境变量

1
2
export PATH="$HOME/.jenv/bin:$PATH"
eval "$(jenv init -)"

添加 JDK 到 jenv

Homebrew 安装的 Temurin 17,通常会安装在特定的 Homebrew Cask 目录下。可以用命令找到 JDK 的确切安装位置

1
/usr/libexec/java_home -v17

会返回 Temurin 17 JDK 的路径

1
/Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home

使用上面的方法将多版本的路径都添加到 jenv

1
2
3
4
mkdir -p ~/.jenv/versions
jenv add /Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home
jenv add /Library/Java/JavaVirtualMachines/temurin-11.jdk/Contents/Home
jenv add /Library/Java/JavaVirtualMachines/temurin-8.jdk/Contents/Home

列出所有配置的JDK

1
jenv versions

设置全局Java版本

如果要全局设置设备的Java版本,可以使用jenv global

1
jenv global 17

设置目录Java版本

如果只想在当前目录下设置Java版本,可以使用jenv local

1
jenv local 17

设置当前终端Java版本

如果只想在当前终端下设置Java版本,可以使用jenv shell

1
jenv shell 17

查看Java版本

1
java -version