• MAC系统中安装多个jdk并随时切换


    关注我 「Java之康庄大道」精彩文章第一时间推送给你

    Java之康庄大道

    JDK更新的速度实在是太快了,我们一个项目还没完成,JDK已经更新好几代了,有时候我们既想要跟上JDK更新的步伐,又需要依赖以前的JDK版本,这个时候就需要在电脑上安装多个版本的JDK了,这篇文章就讲一下,如何在MAC系统中安装多个jdk并随时切换。

    1.在 zshrc 中设置环境变量

    # 进入zshrc文件
    vim ~/.zshrc
    
    # 修改文件在里面添加如下
    export JAVA_8_HOME=$(/usr/libexec/java_home -v1.8)
    export JAVA_11_HOME=$(/usr/libexec/java_home -v11)
    export JAVA_17_HOME=$(/usr/libexec/java_home -v17)
    export PATH=$PATH:$JAVA_HOME/bin
    
    alias jdk8='export JAVA_HOME=$JAVA_8_HOME'
    alias jdk11='export JAVA_HOME=$JAVA_11_HOME'
    alias jdk17='export JAVA_HOME=$JAVA_17_HOME'
    

    然后就可以在terminal中用jdk8切换到1.8版本,用jdk11切换到11版本,用jdk17切换到17版本了,但是这个方法存在一个问题,就是每次重启终端之前设置的版本就会失效,只能在当前终端使用,因为每次重启终端后会自动执行 source ~/.zshrc,会把之前设置的覆盖掉。

    2.使用 python 脚本自动修改

    需要电脑安装 python3,脚本jdkChange.py如下:

    import sys,os
    home_path = os.environ['HOME']
    ZSH_CONFIG_FILE = home_path + '/.zshrc'
    
    content = ''
    with open(ZSH_CONFIG_FILE, "r") as f:
        content = f.read()
    if len(sys.argv) == 1:
        exit("请传入jdk版本,例如1.8,11,17")
      
    jdk = sys.argv[1]
    jdk_home = '$(/usr/libexec/java_home -v' + jdk + ')'
    exportCommond = "export JAVA_HOME=" + jdk_home;
    lines = content.split("\n")
    newLines = []
    rewrite = False
    for line in lines:
        if line.startswith("export JAVA_HOME"):
            line = exportCommond
            rewrite = True
        # 删除java——home的导入
        if line.startswith("export PATH=$PATH:$JAVA_HOME/bin"):
            continue
        newLines.append(line)
    if not rewrite:
        newLines.append(exportCommond)
    # 在文件末尾导入PATH
    newLines.append("export PATH=$PATH:$JAVA_HOME/bin")
    with open(ZSH_CONFIG_FILE, "w") as f:
        f.write('\n'.join(newLines))
    

    接下来需要修改zshrc文件如下:

    export JAVA_8_HOME=$(/usr/libexec/java_home -v1.8)
    export JAVA_11_HOME=$(/usr/libexec/java_home -v11)
    export JAVA_17_HOME=$(/usr/libexec/java_home -v17)
    
    alias jdk8='python3 /Users/yunqing/Documents/software/jdkChange.py 1.8;export JAVA_HOME=$JAVA_8_HOME'
    alias jdk11='python3 /Users/yunqing/Documents/software/jdkChange.py 11;export JAVA_HOME=$JAVA_11_HOME'
    alias jdk17='python3 /Users/yunqing/Documents/software/jdkChange.py 17;export JAVA_HOME=$JAVA_17_HOME'
    

    其中前面的python3命令是为了全局的环境变量,即终端重启后可以生效,后面的export JAVA_HOME是为了当前终端可以生效.

    经过如上配置,就可以实现自由切换 JDK 版本了。

  • 相关阅读:
    [蓝桥杯][基础训练]报时助手
    [蓝桥杯][基础训练]分解质因数
    [蓝桥杯][基础训练]2n皇后问题
    [啊哈算法]我要做月老
    [啊哈算法]关键道路(图的割边)
    [啊哈算法]重要城市(图的割点)
    并查集
    栈数组与栈链表代码实现

    循环链表
  • 原文地址:https://www.cnblogs.com/yunqing/p/16131828.html
Copyright © 2020-2023  润新知