前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >命令行一键切换java版本的几种方式

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

作者头像
code4it
发布2018-09-17 16:04:54
1.7K0
发布2018-09-17 16:04:54
举报
文章被收录于专栏:码匠的流水账

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

背景

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

zsh function实现

~/.zshrc

代码语言:javascript
复制
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版本。

使用实例

代码语言:javascript
复制
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之类的用来管理多版本

安装

代码语言:javascript
复制
brew install jenv
echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(jenv init -)"' >> ~/.zshrc
mkdir -p  ~/.jenv/versions

注册java版本

代码语言:javascript
复制
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

查看版本

代码语言:javascript
复制
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

切换

代码语言:javascript
复制
➜  ~ 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

代码语言:javascript
复制
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
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-03-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 码匠的流水账 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • zsh function实现
    • ~/.zshrc
      • 使用实例
      • jenv
        • 安装
          • 注册java版本
            • 查看版本
              • 切换
                • maven
                • 小结
                • doc
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档