在 macOS 上同时安装多个 Java 版本

在开发与运行 Java 应用时,不同的项目可能需要不同版本的 Java。这种情况下,我们在 macOS 上如何安装和管理多个 Java 版本呢?

支持的 Java 版本

macOS 支持同时安装多个 Java 版本。常见的 Java 版本有:

  • Java 8
  • Java 11
  • Java 17
  • Java 21(如果发布)

你可以通过 JDK(Java Development Kit)进行安装。一般来说,常用的安装方式有 Homebrew 和手动下载安装。

使用 Homebrew 安装 Java

Homebrew 是 macOS 上流行的包管理工具。我们可以通过它方便地安装不同版本的 Java。

# 更新 Homebrew
brew update

# 安装某个特定版本的 Java
brew install openjdk@11
brew install openjdk@17

通过这种方式,你可以在你的 Mac 上安装多个 Java 版本。

环境变量设置

安装完成后,你需要设置环境变量来切换 Java 版本。使用以下命令查看已安装的 Java 版本。

/usr/libexec/java_home -V

根据输出的路径,你可以使用以下命令设置当前的 Java 版本。例如,选择使用 Java 11:

export JAVA_HOME=`/usr/libexec/java_home -v 11`

你可以在 ~/.bash_profile~/.zshrc 文件中加入上述命令以使设置永久生效。

管理 Java 版本

使用 jenv 工具,你可以更加方便地管理多个 Java 版本。这是一个工具,可以让你轻松地切换 Java 版本。

安装 jenv

你可以使用 Homebrew 安装 jenv:

brew install jenv

添加 Java 版本到 jenv

在 jenv 中添加已安装的 Java 版本:

jenv add /Library/Java/JavaVirtualMachines/openjdk-11.jdk/Contents/Home
jenv add /Library/Java/JavaVirtualMachines/openjdk-17.jdk/Contents/Home

切换 Java 版本

使用以下命令来查看当前的 Java 版本:

jenv version

切换到 Java 11:

jenv global 11

现在你已经成功切换到 Java 11 版本。

关系图

以下是 Java 版本与 jenv 之间关系的实用示意图:

erDiagram
    JAVA_VERSION ||--o{ JENV : manages
    JAVA_VERSION {
        string version
    }
    JENV {
        string name
    }

流程图

下面是切换 Java 版本的基本流程:

sequenceDiagram
    participant User
    participant Terminal
    participant System

    User->>Terminal: 查看已安装 Java 版本
    Terminal->>System: /usr/libexec/java_home -V
    System-->>Terminal: 输出版本列表
    Terminal-->>User: 返回可用版本
    User->>Terminal: 设置 JAVA_HOME
    Terminal->>System: export JAVA_HOME=`/usr/libexec/java_home -v <version>`
    System-->>Terminal: 成功切换版本
    Terminal-->>User: 当前 Java 版本已切换

结论

在 macOS 上,您可以方便地同时安装多个 Java 版本,并通过 jenv 等工具轻松管理它们。无论是在开发新项目还是维护旧项目,灵活地切换 Java 版本将极大提高您的工作效率。通过本文的介绍,相信您已经掌握了在 macOS 上安装和管理不同 Java 版本的基本方法。希望这些技巧能够帮助您更高效地进行 Java 开发!