您的位置 首页 java

命令行一键切换java版本的几种方式

本文主要讲述一下命令行一键切换 java 版本的几种方式

背景

java现在版本发布相对以前比较频繁了,java9还没来得及用,java10就出来了,2018年9月份java11也要来了,于是就有需求在笔记本电脑上装多个版本的java,一键切换就变得极为迫切。

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 
}
 

使用实例

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

jenv有点类似node的nvm之类的用来管理多版本

安装

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
 

查看版本

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 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,可以用来设置默认的版本,不过我这边貌似不起作用,先忽略这个

maven

jenv enable-plugin maven
 

jenv的这个命令可以强制maven使用jenv配置的java版本

小结

切换java版本的本质还是修改JAVA_HOME 环境变量 ,需要注意切换后该环境变量的 作用域 ,jenv可以作用到之后新打开的窗口。

doc

  • jenv
  • java-environment-management
  • jenv add “ln No such file or directory” #167
  • Unix / Linux Shell – The case…esac Statement

文章来源:智云一二三科技

文章标题:命令行一键切换java版本的几种方式

文章地址:https://www.zhihuclub.com/174124.shtml

关于作者: 智云科技

热门文章

网站地图