跳转到内容

macos使用jenv切换多个java环境

jenv是一个Java环境管理工具,可以方便地在多个Java版本之间切换。它可以帮助开发者轻松地管理和切换不同的Java版本,避免了手动设置JAVA_HOME和PATH等环境变量的麻烦。 github地址:https://github.com/jenv/jenv

安装jenv

  1. 使用brew进行安装

    Terminal window
    brew install jenv
  2. 配置环境变量,macos默认使用的zsh shell

    Terminal window
    echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrc
    echo 'eval "$(jenv init -)"' >> ~/.zshrc

    使配置生效,source ~/.zshrc,然后会生成~/.jenv 目录

  3. 验证jevn是否安装

    Terminal window
    jevn doctor

    如果输出如下信息,且都是ok,则表示安装成功

    Terminal window
    [OK] JAVA_HOME variable probably set by jenv PROMPT
    [OK] Java binaries in path are jenv shims
    [OK] Jenv is correctly loaded
  4. 使用brew安装多个版本的jdk

如果是macos是m系列的芯片,brew默认安装的路径是在/opt/homebrew/opt 而Intel系列的芯片默认安装在/usr/local

将使用brew安装的jdk添加到jenv

  1. 创建链接,将brew所安装jdk的路径连接到存放jdk目录,这个目录可以任意指定 例如macos m系列芯片,命令如下

    Terminal window
    sudo ln -sfn /opt/homebrew/opt/openjdk17/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/jdk17/openjdk.jdk
    # -sfn 表示创建软链接,-f表示强制覆盖,-n表示不跟随链接
    # 紧接着第一个参数表示你的jdk安装路径
    # 第二个参数表示你要创建的链接的路径
  2. 将jdk添加到jenv中

    Terminal window
    jenv add /Library/Java/JavaVirtualMachines/jdk17/openjdk.jdk

    使用jenv versions命令查看已添加的Jdk版本

  3. 使用jenv进行jdk版本的切换

    Terminal window
    jenv global 17.0
    jenv global 11.0

    后面的global表示全局的jdk版本,global后面的值是使用jenv versions命令列表中的值,否则会报错。 如果每次切换jdk都输入那么长的命令好像也不太方便,那么可以使用alias命令在~/.zshrc 进行配置,达到简化的目的。

    Terminal window
    alias jdk11='jenv global 11'
    alias jdk17='jenv global 17'
    alias jdk21='jenv global 21'

    然后使用source ~/.zshrc命令使配置生效,后续直接在命令行窗口中,输入jdk11 jdk17,则可以进行jdk的自由切换