写在前面
在很多时候,不同的jdk版本可能不兼容,比如你的项目可能需要jdk1.8(你发任你发我用Java8哈哈哈哈),但是你又想玩Minecraft(java最低要求11),又或者是另一个项目需要jdk11(我哭死,终于不用Java8了),那么,这个时候,我们就需要安装多个版本的JDK,同时,又需要在使用中按需指定版本,jenv
就为我们提供了一个十分方便的做法。
比如,我需要把全局的jdk版本切换到1.8,只需要:
$ jenv global oracle64-1.8.0.333
这样,全局的jdk版本就被设置成了1.8
jenv官网:https://www.jenv.be/
如何使用
首先肯定是安装jdk,这里略过,安装jdk有无数种方法,选一个你喜欢的
安装jenv
$ brew install jenv
什么?没有homebrew
?赶快装一个吧
如果是zsh:
$ echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrc
$ echo 'eval "$(jenv init -)"' >> ~/.zshrc
$ source ~/.zshrc
如果是bash:
$ echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(jenv init -)"' >> ~/.bash_profile
$ source ~/.bash_profile
查看当前安装的jdk版本
$ /usr/libexec/java_home -V
Matching Java Virtual Machines (4):
17.0.3.1 (x86_64) "Oracle Corporation" - "Java SE 17.0.3.1" /Library/Java/JavaVirtualMachines/jdk-17.0.3.1.jdk/Contents/Home
11.0.16.1 (x86_64) "Oracle Corporation" - "Java SE 11.0.16.1" /Library/Java/JavaVirtualMachines/jdk-11.0.16.1.jdk/Contents/Home
1.8.333.02 (x86_64) "Oracle Corporation" - "Java" /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
1.8.0_333 (x86_64) "Oracle Corporation" - "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_333.jdk/Contents/Home
/Library/Java/JavaVirtualMachines/jdk-17.0.3.1.jdk/Contents/Home
jenv添加jdk
这里以我添加jdk11为例(安装路径看上面)
用法:jenv add {jdk安装位置}
$ jenv add /Library/Java/JavaVirtualMachines/jdk-11.0.16.1.jdk/Contents/Home
oracle64-11.0.16.1 added
11.0.16.1 added
11.0 added
11 added
查看已安装的版本
$ jenv versions
system
1.8
1.8.0.333
11
11.0
11.0.16.1
17
17.0
17.0.3.1
* oracle64-1.8.0.333 (set by /Users/kakkk/.jenv/version)
oracle64-11.0.16.1
oracle64-17.0.3.1
其中,前面带*
号的,就是当前设置的版本
设置全局jdk版本
$ jenv global oracle64-11.0.16.1
$ java -version
java version "11.0.16.1" 2022-08-18 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.16.1+1-LTS-1)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.16.1+1-LTS-1, mixed mode)
设置当前shell的jdk版本
$ jenv shell oracle64-1.8.0.333
$ java -version
java version "1.8.0_333"
Java(TM) SE Runtime Environment (build 1.8.0_333-b02)
Java HotSpot(TM) 64-Bit Server VM (build 25.333-b02, mixed mode)
设置当前文件夹的jdk版本
$ jenv shell local oracle64-17.0.3.1
$ java -version
java version "17.0.3.1" 2022-04-22 LTS
Java(TM) SE Runtime Environment (build 17.0.3.1+2-LTS-6)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.3.1+2-LTS-6, mixed mode, sharing)