MacOS环境下通过jEnv实现多JDK版本间快捷切换

1,539 阅读1分钟

随着目前项目的不断更新,有些新项目需要用到更新的Java版本如Java17,但是部分老项目仍然还是使用Java8,多个版本混合开发的时候,频繁通过修改配置文件选定JDK版本会很麻烦,我们可以通过jEnv来实现实现多JDK版本间快捷切换

1、安装jEnv

$ brew install jenv

2、配置shell环境,并重新加载配置

$ echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrc
$ echo 'eval "$(jenv init -)"' >> ~/.zshrc
$ source ~/.zshrc

3、查看当前安装的各个JDK所在路径

$ /usr/libexec/java_home -V

4、通过jEnv添加各个JDK,如下示例

## 添加JDK8
$ jenv add /Library/Java/JavaVirtualMachines/jdk-1.8.jdk/Contents/Home
## 添加JDK17
$ jenv add /Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home

5、通过jEnv查看JDK列表

## 查看JDK版本列表
$ jenv versions
## 结果如下
  system
  1.8
## 此处因为我之前配置过JDK8为默认JDK
* 1.8.0.391 (set by /Users/username/.jenv/version)
  11
  11.0
  11.0.21
  17
  17.0
  17.0.9
  oracle64-1.8.0.391
  oracle64-11.0.21
  oracle64-17.0.9

6、配置要设置的JDK版本

## 全局配置JDK版本,试了几次发现此处需重新配置加载(官方文档没有标注,有可以解惑的大佬可以告知一下)
$ jenv global 1.8.0.391
$ source ~/.zshrc
## 设置当前目录及子目录的JDK版本
$ jenv local 1.8.0.391
## 设置当前shell会话JDK版本
$ jenv shell 1.8.0.391

7、其他命令

## 查看状态
$ jenv doctor
## 删除管理JDK版本
$ jenv remove xxx版本号