Mac 12.5 安装和使用jenv管理多版本java

符号说明:
~ %
表示终端输入指令前缀

一、java多版本切换工具jenv的安装和使用

1.使用homebrew安装jenv

~ % brew install jenv

2.jenv配置环境

# Shell: bash
~ % echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile
~ % echo 'eval "$(jenv init -)"' >> ~/.bash_profile

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

3.安装jenv成功后,添加需要管理的JDK

I.查看已安装的JDK版本本地存储路径

~ % /usr/libexec/java_home -V
输出:
Matching Java Virtual Machines (2):
    18.0.2 (x86_64) "Oracle Corporation" - "Java SE 18.0.2" /Library/Java/JavaVirtualMachines/jdk-18.0.2.jdk/Contents/Home
    1.8.0_281 (x86_64) "Oracle Corporation" - "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_281.jdk/Contents/Home
/Library/Java/JavaVirtualMachines/jdk-18.0.2.jdk/Contents/Home

II.jenv添加需要管理的本地路径

~ % jenv add /Library/Java/JavaVirtualMachines/jdk-18.0.2.jdk/Contents/Home
~ % jenv add /Library/Java/JavaVirtualMachines/jdk-18.0.2.jdk/Contents/Home
*Error处理:jenv add可能出现的问题
  • ln:xxxxpath: No such file or directory

  • 解决方法:给jenv下新建versions文件夹

~ % mkdir -p ~/.jenv/versions

4.诊断jenv是否配置成功

~ % jenv doctor  
输出:
[OK]    No JAVA_HOME set
[OK]    Java binaries in path are jenv shims
[OK]    Jenv is correctly loaded

5.删除添加到jenv的JDK版本

~ % jenv remove 18

6.查看添加到jenv的JDK版本

  • * 代表当前使用的java版本
~ % jenv versions

  system
* 1.8 (set by /Users/ln/.jenv/version)
  1.8.0.281
  18.0
  18.0.2
  oracle64-1.8.0.281
  oracle64-18.0.2

7.指定JDK版本

~ % jenv local 1.8

8.指定全局JDK版本

~ % jenv global oracle64-1.8.0.281

tips: 若不成功 可终端输入exec $SHELL -l 设置生效

9.查看当前版本的引用位置

~ % jenv which java

二、其他注意点

1. jenv只改变了java -version的版本

2.  /usr/libexec/java_home 的版本自动默认使用最高版本

3. 如果使用 java -jar  jenkins.war 安装war包,可以实现切换JDK版本安装,但使用tomcat或homebrew安装jenkins时,需要修改/usr/libexec/java_home的指向版本

4. 使用java -jar  xxxx.war 安装jenkins.war包时,需要一直启动终端不关闭,否则会失败

三、修改/usr/libexec/java_home的指向版本

1. 打开java jdk安装路径中的plist配置文件:

cmd+shift+G 输入 /Library/Java/JavaVirtualMachines/jdk1.8.0_281.jdk/Contents/Info.plist

2. 修改JVMVersion

  • 需要改为比当前版本高的版本号,如当前版本为18.0.2.1,可修改为 18.0.281

  • 终端再次执行/usr/libexec/java_home命令,发现已修改成功:

~ % /usr/libexec/java_home

/Library/Java/JavaVirtualMachines/jdk1.8.0_281.jdk/Contents/Home

四、jenv安装和使用参考

mac 使用 jenv 管理多个版本的 jdk

jenv add “ln No such file or directory“解决办法

内含切换java -version没生效的解决方法和jenv doctor诊断出错的解决方法

番外篇,如何修改 mac 12.4 系统 /usr/libexec/java_home 返回的 jdk 目录?

你可能感兴趣的:(Mac 12.5 安装和使用jenv管理多版本java)