问题由来

随着开发技术的不断更新迭代,jdk8 独占一头的时代已经过去了,现在好多的项目渐渐开始转型到 jdk11、 jdk17了,面对这些新的项目所需要的jdk环境,总不能用一次安装一次吧,如果能够像python的pyenv工具一样,能够管理多个环境版本的jdk,这样就可以在不同的项目里直接一行命令切换相应的jdk环境,而不用再次去下载配置。

那么怎么实现 mac 环境下多版本 jdk 的管理,我采用如下的方式:

解决方案

  • 下载好自己需要的 jdk 版本,我这里下载了常用 8、11、17。下载地址,直接下载 .dmg 的jdk安装包。

  • 在 mac 自己的用户目录下找到系统自定义配置文件 .bash_profile 文件

  • 配置每个版本的 JAVA_HOME 环境变量

    # Java jdk 环境变量配置
    export JAVA_8_HOME=/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home
    export JAVA_11_HOME=/Library/Java/JavaVirtualMachines/zulu-11.jdk/Contents/Home
    export JAVA_17_HOME=/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home
    
  • 为每个 jdk 版本起一个别名,这个别名就是自己在终端切换时的命令行语句,根据个人习惯命名即可

    # 切换jdk环境
    alias jdk8="export JAVA_HOME=$JAVA_8_HOME"
    alias jdk11="export JAVA_HOME=$JAVA_11_HOME"
    alias jdk17="export JAVA_HOME=$JAVA_17_HOME"
    
  • 设置一个默认的 jdk 环境版本,比如我这里默认 jdk8

    export JAVA_HOME=$JAVA_8_HOME
    
  • 重载配置文件

    source ~/.bash_profile
    

现在,你可以用你配置的别名来切换jdk的版本了!我默认的是 jdk8,使用了自定义的切换命令 jdk11 之后,成功切换!jdk-switch-tuya.webp