写在前面

在很多时候,不同的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)
最后修改:2022 年 08 月 28 日
如果觉得我的文章对你有用,请随意赞赏