命令行一键切换java版本的2种方式
zsh function实现
~/.zshrc
function jvm {
version=$1
case "$version" in
9)
export JAVA_HOME='/Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home'
;;
10)
export JAVA_HOME='/Library/Java/JavaVirtualMachines/jdk-10.jdk/Contents/Home'
;;
*)
export JAVA_HOME='/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home'
;;
esac
}
注意: 这个命令只对当前命令窗口有效。新开的窗口还是使用~/.zshrc里头原来配置的JAVA_HOME版本。
使用实例
jvm 8
java -version
java version "1.8.0_151"
Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)
jvm 9
java -version
java version "9"
Java(TM) SE Runtime Environment (build 9+181)
Java HotSpot(TM) 64-Bit Server VM (build 9+181, mixed mode)
jvm10
java -version
openjdk version "10" 2018-03-20
OpenJDK Runtime Environment 18.3 (build 10+46)
OpenJDK 64-Bit Server VM 18.3 (build 10+46, mixed mode)
jenv
安装
brew install jenv
echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(jenv init -)"' >> ~/.zshrc
mkdir -p ~/.jenv/versions
注册java版本
jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home
jenv add /Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home
jenv add /Library/Java/JavaVirtualMachines/jdk-10.jdk/Contents/Home
- 其实就是建立了一个软链接等价于下面的命令
cd ~/.jenv/versions/
ln -s jdk目录/1.8.0.jdk/Contents/Home jdk1.8
查看版本
jenv versions
* system (set by /Users/demo/.jenv/version)
1.8
1.8.0.151
10
9
openjdk64-10
oracle64-1.8.0.151
oracle64-9
切换
jenv versions - 查看安装的版本
jenv global oracle64-1.8.0.181 - 设置当前版本为1.8
exec $SHELL -l - 重启Shell终端
java -version - 查看JDK版本
jenv global oracle64-10.0.2 - 设置当前版本为10
exec $SHELL -l- 重启Shell终端
java -version - 查看JDK版本
~ jenv local 1.8
~ java -version
java version "1.8.0_151"
Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)
~ jenv local 9
~ java -version
java version "9"
Java(TM) SE Runtime Environment (build 9+181)
Java HotSpot(TM) 64-Bit Server VM (build 9+181, mixed mode)
~ jenv local 10
~ java -version
openjdk version "10" 2018-03-20
OpenJDK Runtime Environment 18.3 (build 10+46)
OpenJDK 64-Bit Server VM 18.3 (build 10+46, mixed mode)
这个local作用当前窗口以及之后新开的窗口 相对于local,有个global,可以用来设置默认的版本,不过可能不起作用,先用local
maven
jenv enable-plugin maven
jenv的这个命令可以强制maven使用jenv配置的java版本
小结
切换java版本的本质还是修改JAVA_HOME环境变量,需要注意切换后该环境变量的作用域,jenv可以作用到之后新打开的窗口。
网友评论