美文网首页常用工具使用
jenv命令行一键切换java版本

jenv命令行一键切换java版本

作者: 五城十九洲 | 来源:发表于2019-08-17 10:40 被阅读0次

    命令行一键切换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可以作用到之后新打开的窗口。

    相关文章

      网友评论

        本文标题:jenv命令行一键切换java版本

        本文链接:https://www.haomeiwen.com/subject/sqyhsctx.html