符号说明:
~ %
表示终端输入指令前缀
一、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安装和使用参考
jenv add “ln No such file or directory“解决办法
网友评论