跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Javajava

多版本 JDK 安装与配置

综述由AI生成在 Windows、Mac 和 Linux 环境下安装和配置多版本 JDK 的方法。主要步骤包括从官网下载对应版本、安装至不同目录、配置环境变量(如 JAVA_HOME 和 Path)、以及通过脚本或手动修改环境变量来切换当前使用的 JDK 版本。文中提供了各平台的具体命令行操作示例及验证方法,帮助用户在同一台机器上灵活管理多个 Java 开发环境。

ApiHolic发布于 2026/3/27更新于 2026/5/2425 浏览

一、概述

当不同项目可能需要不同 Java 版本,这时我们需要在同一台机器上安装多个版本的 JDK,并能够方便地切换。主要通过以下步骤实现:

  1. 下载 JDK:从 Oracle 官网或 OpenJDK 网站下载所需的 JDK 版本。
  2. 安装 JDK:可以将不同版本的 JDK 安装到不同的目录。例如,将 JDK 8 安装在 /usr/lib/jvm/jdk-8,将 JDK 11 安装在 /usr/lib/jvm/jdk-11。
  3. 配置环境变量:为不同版本的 jdk 创建对应的 JAVA_HOME,再创建一个通用的 JAVA_HOME。
  4. 切换 JDK 版本:将需要应用的 jdk 版本的 JAVA_HOME 赋值给这个通用的 JAVA_HOME。
  5. 验证版本:使用 java -version 命令验证当前使用的 JDK 版本。

二、Windows 环境多个 JDK 安装与切换

2.1 下载 JDK

去 Oracle 官网上下载想要安装的 JDK 版本,https://www.oracle.com/java/technologies/downloads/。

2.2 安装 JDK

双击 .exe 文件,选择好安装目录进行安装。多个版本的 JDK 重复这两步操作就好。

2.3 配置环境变量

配置 CLASSPATH 环境变量,编辑 CLASSPATH 变量,在后面添加下面的配置,如果之前有配置过,也先删除再重新配置。.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;

配置 Path 环境变量,编辑 Path 变量,在后面添加两条变量。如果之前配置过其他的 JDK 的 path 变量的话,就先把之前的配置删除,重新添加下面两条。并且这两条需要移动到最前面,不然后续无法切换 JDK 版本。%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

创建一个通用的 JAVA_HOME,将需要使用的 JDK 版本的 JAVA_HOME 赋值给这个通用的 JAVA_HOME。

在环境变量中新增不同 JDK 版本的 JAVA_HOME。

首先找到 JDK 安装的目录。

2.4 切换 JDK 版本

编辑通用的 JAVA_HOME 变量的值,将需要应用的 JDK 的 JAVA_HOME 值赋值给通用的 JAVA_HOME 变量。

2.5 验证版本

使用以下命令进行验证当前 JDK 版本信息:

# 检查当前 Java 版本
java -version
# 检查 Javac 版本
javac -version

三、Mac 环境多 JDK 安装与切换

3.1 下载 JDK

去 Oracle 官网上下载想要安装的 JDK 版本,M 芯片选择 arm 架构的 .bmg 格式的文件。 https://www.oracle.com/java/technologies/downloads/。

3.2 安装 JDK

双击下载的文件,安装步骤一步步点继续就好。

3.3 配置环境变量

编辑完成之后,执行 source .bash_profile 让配置文件生效。再使用 java -version 命令查看 JDK 版本信息。

打开终端,进入到 /root 目录下,通过 open .bash_profile 命令打开并编辑 .bash_profile 文件,如果不存在这个文件就创建一个这个名字的文件。

export JAVA_8_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_291.jdk/Contents/Home
export JAVA_21_HOME=/Library/Java/JavaVirtualMachines/jdk-21.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH:.
alias jdk8='export JAVA_HOME=$JAVA_8_HOME'
alias jdk21='export JAVA_HOME=$JAVA_21_HOME'

安装完成后会在 /Library/Java/JavaVirtualMachines 目录下看到安装的 JDK 信息。

3.4 切换 JDK 版本

可以根据上面配置的版本别名进行切换。

3.5 验证版本

使用以下命令进行验证当前 JDK 版本信息:

# 检查当前 Java 版本
java -version
# 检查 Javac 版本
javac -version

四、Linux 环境多 JDK 安装与切换

4.1 下载 JDK

下载 JDK

# 方式 1:从官网下载(需要账户)
# 访问 https://www.oracle.com/java/technologies/downloads/
# 或 https://adoptium.net/
# 方式 2:使用 wget 下载 OpenJDK(示例)
cd /tmp
# OpenJDK 8
wget https://download.java.net/openjdk/jdk8u41/ri/openjdk-8u41-b04-linux-x64-14_jan_2020.tar.gz
# OpenJDK 11
wget https://download.java.net/java/GA/jdk11/9/GPL/openjdk-11.0.2_linux-x64_bin.tar.gz
# OpenJDK 17
wget https://download.java.net/java/GA/jdk17.0.2/dfd4a8d0985749f896bed50d7138ee7f/8/GPL/openjdk-17.0.2_linux-x64_bin.tar.gz
# OpenJDK 21
wget https://download.java.net/java/GA/jdk21.0.2/f2283984656d49d69e91c558476027ac/13/GPL/openjdk-21.0.2_linux-x64_bin.tar.gz

创建统一的安装目录

# 创建 JDK 安装目录
sudo mkdir -p /usr/local/src/jdks
sudo chmod 755 /usr/local/src/jdks

4.2 安装 JDK

# 解压到 /usr/local/src/jdks 目录
sudo tar -xzf openjdk-8u41-b04-linux-x64-14_jan_2020.tar.gz -C /usr/local/src/jdks/
sudo tar -xzf openjdk-11.0.2_linux-x64_bin.tar.gz -C /usr/local/src/jdks/
sudo tar -xzf openjdk-17.0.2_linux-x64_bin.tar.gz -C /usr/local/src/jdks/
sudo tar -xzf openjdk-21.0.2_linux-x64_bin.tar.gz -C /usr/local/src/jdks/
# 重命名为简洁的名称(可选)
cd /usr/local/src/jdks
sudo mv java-se-8u41-ri jdk-8
sudo mv jdk-11.* jdk-11
sudo mv jdk-17.* jdk-17
sudo mv jdk-21.* jdk-21
# 设置权限
sudo chmod -R 755 /usr/local/src/jdks/jdk-*
sudo chown -R root:root /usr/local/src/jdks/jdk-*

4.3 验证安装

# 检查每个 JDK 版本
/usr/local/src/jdks/jdk-8/bin/java -version
/usr/local/src/jdks/jdk-11/bin/java -version
/usr/local/src/jdks/jdk-17/bin/java -version
/usr/local/src/jdks/jdk-21/bin/java -version

4.4 配置 JDK 切换

4.4.1 使用环境变量(按需切换)

创建切换脚本

# 1. 创建切换脚本目录
mkdir -p ~/bin/jdk_switcher
# 2. 创建脚本
cat > ~/bin/jdk_switcher/jdk-switch.sh <<'EOF'
#!/bin/bash
# JDK 切换脚本
JDK_BASE_DIR="/usr/local/src/jdks"
CURRENT_JDK_FILE="$HOME/.current_jdk"

show_usage() {
    echo "使用方法:$0 [版本号]"
    echo "可用版本:"
    ls -1 "$JDK_BASE_DIR" | grep -E "^jdk-|^java-" | sed 's/^/ /'
    echo ""
    echo "示例:"
    echo " $0 8 # 切换到 JDK 8"
    echo " $0 11 # 切换到 JDK 11"
    echo " $0 17 # 切换到 JDK 17"
    echo " $0 current # 显示当前版本"
}

get_jdk_path() {
    local version=$1
    local jdk_path
    # 尝试匹配 jdk-版本号
    jdk_path=$(ls -d "$JDK_BASE_DIR"/jdk-$version* 2>/dev/null | head -1)
    # 如果没找到,尝试匹配 java-版本号
    if [ -z "$jdk_path" ]; then
        jdk_path=$(ls -d "$JDK_BASE_DIR"/java-$version* 2>/dev/null | head -1)
    fi
    echo "$jdk_path"
}

set_jdk() {
    local version=$1
    local jdk_path=$(get_jdk_path "$version")
    if [ -z "$jdk_path" ]; then
        echo "错误:未找到 JDK $version"
        return 1
    fi
    if [ ! -d "$jdk_path" ]; then
        echo "错误:JDK 路径不存在:$jdk_path"
        return 1
    fi
    # 设置环境变量
    export JAVA_HOME="$jdk_path"
    export PATH="$JAVA_HOME/bin:$PATH"
    # 保存当前选择
    echo "$jdk_path" > "$CURRENT_JDK_FILE"
    echo "已切换到:$jdk_path"
    java -version
}

show_current() {
    if [ -f "$CURRENT_JDK_FILE" ]; then
        current_jdk=$(cat "$CURRENT_JDK_FILE")
        echo "当前 JDK: $current_jdk"
        $current_jdk/bin/java -version
    else
        echo "未设置 JDK"
        java -version 2>/dev/null || echo "Java 未安装或未在 PATH 中"
    fi
}

# 主逻辑
main() {
    if [ $# -eq 0 ]; then
        show_usage
        return 1
    fi
    case "$1" in
        "current")
            show_current
            ;;
        "list")
            echo "已安装的 JDK 版本:"
            ls -1 "$JDK_BASE_DIR" | grep -E "^jdk-|^java-" | sed 's/^/ /'
            ;;
        "help"|"-h"|"--help")
            show_usage
            ;;
        *)
            set_jdk "$1"
            ;;
    esac
}
main "$@"
EOF
# 3. 设置执行权限
chmod +x ~/bin/jdk_switcher/jdk-switch.sh
# 4. 创建符号链接
ln -sf ~/bin/jdk_switcher/jdk-switch.sh ~/bin/jdk-switch
# 5. 添加到 .bashrc 或 .zshrc
echo 'alias java-switch="~/bin/jdk-switch"' >> ~/.bashrc
echo 'export PATH="$HOME/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
4.4.2 使用切换脚本
# 列出所有 JDK
jdk-switch list
# 切换到 JDK 8
jdk-switch 8
# 切换到 JDK 11
jdk-switch 11
# 查看当前版本
jdk-switch current
# 显示帮助
jdk-switch help
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • Docker 容器化 Whisper:镜像选型与模型预加载实战
  • Ollama 集成 Llama 3.2 Vision 与视觉 RAG 系统实战
  • Spring AOP 注解实现详解
  • Python 七大主流就业方向及核心技能解析
  • 宜搭低代码高级认证:待办列表自定义页面实战指南
  • Git Worktree 原理与实战:解析 Cursor 2.0 多 Agent 并行模式
  • Docker Compose 多容器编排基础与常用命令详解
  • DeOldify 图像上色:黑白漫画转赛博朋克/水墨/油画风格
  • 安卓 Termux 部署 AstrBot 与 NapCat 搭建 QQ 机器人
  • VSCode Copilot 无法登录原因排查与恢复指南
  • FaceFusion、Stable Diffusion 与 DeepFaceLive 技术路线深度对比
  • Agent 开发的三重境界:从 API 调用到自主智能
  • Java 包装类与泛型核心解析
  • AI 时代的内容创作:从代码到认知的范式转移
  • MySQL 详细安装与配置完整教程
  • mdev 与 udev:嵌入式及桌面 Linux 设备管理对比
  • 7 款热门 Claude Skills 开源工具:GitHub 精选技能库
  • Python 遍历目录
  • 手写 C++ TCP 服务器:自定义协议与粘包处理实战
  • Python 纪念币预约自动化工具实现与部署

相关免费在线工具

  • Keycode 信息

    查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online

  • Escape 与 Native 编解码

    JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online

  • JavaScript / HTML 格式化

    使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online

  • JavaScript 压缩与混淆

    Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

目录

  1. 一、概述
  2. 二、Windows 环境多个 JDK 安装与切换
  3. 2.1 下载 JDK
  4. 2.2 安装 JDK
  5. 2.3 配置环境变量
  6. 2.4 切换 JDK 版本
  7. 2.5 验证版本
  8. 检查当前 Java 版本
  9. 检查 Javac 版本
  10. 三、Mac 环境多 JDK 安装与切换
  11. 3.1 下载 JDK
  12. 3.2 安装 JDK
  13. 3.3 配置环境变量
  14. 3.4 切换 JDK 版本
  15. 3.5 验证版本
  16. 检查当前 Java 版本
  17. 检查 Javac 版本
  18. 四、Linux 环境多 JDK 安装与切换
  19. 4.1 下载 JDK
  20. 方式 1:从官网下载(需要账户)
  21. 访问 https://www.oracle.com/java/technologies/downloads/
  22. 或 https://adoptium.net/
  23. 方式 2:使用 wget 下载 OpenJDK(示例)
  24. OpenJDK 8
  25. OpenJDK 11
  26. OpenJDK 17
  27. OpenJDK 21
  28. 创建 JDK 安装目录
  29. 4.2 安装 JDK
  30. 解压到 /usr/local/src/jdks 目录
  31. 重命名为简洁的名称(可选)
  32. 设置权限
  33. 4.3 验证安装
  34. 检查每个 JDK 版本
  35. 4.4 配置 JDK 切换
  36. 4.4.1 使用环境变量(按需切换)
  37. 1. 创建切换脚本目录
  38. 2. 创建脚本
  39. JDK 切换脚本
  40. 主逻辑
  41. 3. 设置执行权限
  42. 4. 创建符号链接
  43. 5. 添加到 .bashrc 或 .zshrc
  44. 4.4.2 使用切换脚本
  45. 列出所有 JDK
  46. 切换到 JDK 8
  47. 切换到 JDK 11
  48. 查看当前版本
  49. 显示帮助
  • 💰 8折买阿里云服务器限时8折了解详情