命令行一键切换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 }值得注意的是这个命令只对当前命令窗口有效。新开的窗口还是使用~/.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
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 mavenjenv的这个命令可以强制maven使用jenv配置的java版本
小结
切换java版本的本质还是修改JAVA_HOME环境变量,需要注意切换后该环境变量的作用域,jenv可以作用到之后新打开的窗口。
doc
相关推荐
吹云 2020-11-05
84407805 2020-11-01
曾是土木人 2020-10-31
87201442 2020-10-15
java0 2020-09-29
81437716 2020-09-18
81437716 2020-09-13
bluecarrot 2020-09-11
myCat 2020-09-09
83427718 2020-09-07
85560694 2020-09-03
89520991 2020-08-21
89550191 2020-08-09
katie000 2020-08-04
hunningtu 2020-07-30
89961330 2020-07-28
yuzhongdelei0 2020-07-28
yuzhongdelei0 2020-07-27