• MAC下JDK随意切换


    背景

      mac 上安装了多个 jdk 版本,而 MacOS 默认会选择在 /Library/Java/JavaVirtualMachines 目录下的最新版本作为当前JDK版本,但是我们有的时候又不想使用当前这个默认版本,接下来解决如何随意切换 jdk 版本的骚操作了。

    查看

      macOS 下 JDK 默认安装路径:/Library/Java/JavaVirtualMachines

      快速查看 已安装的 JDK 相关信息:/usr/libexec/java_home -V

      快速查看 当前使用 JDK 相关信息:/usr/libexec/java_home

      快速查看 指定版本 JDK 相关信息:/usr/libexec/java_home -v 1.8...

    切换版本

      命令行快速切换 jdk 版本:export JAVA_HOME=`/usr/libexec/java_home -v 1.8`

      修改配置设置默认 jdk 版本:

    vim ~/.bash_profile
    # switch to java version 8
    export JAVA_HOME=`/usr/libexec/java_home -v 1.8`
    
    # close wq and update setting
    source ~/.bash_profileb

    别名配置

      需要根据自己实际已经安装的 JDK 做增减

    alias j12="export JAVA_HOME=`/usr/libexec/java_home -v 12`; java -version"
    alias j11="export JAVA_HOME=`/usr/libexec/java_home -v 11`; java -version"
    alias j10="export JAVA_HOME=`/usr/libexec/java_home -v 10`; java -version"
    alias j9="export JAVA_HOME=`/usr/libexec/java_home -v 9`; java -version"
    alias j8="export JAVA_HOME=`/usr/libexec/java_home -v 1.8`; java -version"
    alias j7="export JAVA_HOME=`/usr/libexec/java_home -v 1.7`; java -version"

    使用效果

      ➜  ~ j7
        java version "1.7.0_80"
        Java(TM) SE Runtime Environment (build 1.7.0_80-b15)
        Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)
      ➜  ~ j8
        java version "1.8.0_201"
        Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
        Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)
      ➜  ~ j11
        openjdk version "11.0.4" 2019-07-16
        OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.4+11)
        OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.4+11, mixed mode)

    修改 JDK 版本号

      我们还可以通过修改版本号实现指定版本的JDK做为默认JDK, 我目前正在使用该方式。

      /usr/libexec/java_home 是通过:/Library/Java/JavaVirtualMachines/<JDK>/Contents/Info.plist 里的 JVMVersion 值来获取版本号的,

      所以只需要修改这个值为当前最大版本号即可实现指定默认 JDK。经过测试这个还是即时生效。

      像我安装过 adoptopenjdk 11 ,但还是希望 adoptopenjdk 8 做为默认 JDK,只需要把 /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Info.plist 里的 JVMVersion 的值由 1.8.0_222 改为 x1.8.0_222(大概第42行)。

    排序是通过 ASCII 值来排的,版本号只要改的比最新的 11 大都行,字符'x'的ASCII值远大于字符'1', 为了方便版本区分我只加了一个字符 x 。

    修改完成之后再查看 JDK 信息,就会发现我们修改的x1.8.0_222会排到第一位,同时 Java version 是 1.8。

    ➜  ~ /usr/libexec/java_home -V
      Matching Java Virtual Machines (4):
          x1.8.0_222, x86_64:    "AdoptOpenJDK 8"  /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home
          11.0.4, x86_64:    "AdoptOpenJDK 11"    /Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home
          1.8.0_201, x86_64:      "Java SE 8"    /Library/Java/JavaVirtualMachines/jdk1.8.0_201.jdk/Contents/Home
          1.7.0_80, x86_64:      "Java SE 7"    /Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home
    
      /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home
    
    ➜  ~ java -version
    openjdk version "1.8.0_222"
    OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_222-b10)
    OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.222-b10, mixed mode)
  • 相关阅读:
    c++程序—冒泡排序法(函数、指针)
    c++程序—统计成绩
    c++程序—冒泡排序法
    c++程序—逆置
    c++程序—五只小猪称体重
    c++程序—goto
    c++程序—乘法表
    c++程序—循环嵌套
    RGB保存 .bmp文件踩坑记
    vdi文件扩容
  • 原文地址:https://www.cnblogs.com/liang1101/p/15924126.html
Copyright © 2020-2023  润新知