阿里云ECS多版本JDK切换

步骤 1:更新系统并安装基础工具

复制代码
sudo dnf update -y
sudo dnf install -y wget tar

步骤 2:安装 JDK 8、11、17(通过默认仓库)

复制代码
# JDK 8
sudo dnf install -y java-1.8.0-openjdk-devel

# JDK 11
sudo dnf install -y java-11-openjdk-devel

# JDK 17
sudo dnf install -y java-17-openjdk-devel

# JDK 21
sudo dnf install -y java-21-openjdk-devel

验证 JDK 安装

复制代码
# 检查所有 JDK
ls /usr/lib/jvm/

# 应该看到:
# java-1.8.0-openjdk-1.8.0.372
# java-11-openjdk-11.0.19
# java-17-openjdk-17.0.10
# java-21-openjdk-21.0.2

配置多 JDK 版本管理(使用 alternatives)

复制代码
# 1. 注册 JDK 8
sudo alternatives --install /usr/bin/java java /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.372/bin/java 8

# 2. 注册 JDK 11
sudo alternatives --install /usr/bin/java java /usr/lib/jvm/java-11-openjdk-11.0.19/bin/java 11

# 3. 注册 JDK 17
sudo alternatives --install /usr/bin/java java /usr/lib/jvm/java-17-openjdk-17.0.10/bin/java 17

# 4. 注册 JDK 21
sudo alternatives --install /usr/bin/java java /usr/lib/jvm/java-21-openjdk-21.0.2/bin/java 21

# 5. 切换版本
sudo alternatives --config java

✅ 执行后,系统会显示版本列表,输入对应数字即可切换

完整 JDK 版本对照表

JDK 版本 包名 安装命令 路径
JDK 8 java-1.8.0-openjdk-devel sudo dnf install -y java-1.8.0-openjdk-devel /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.372/bin/java
JDK 11 java-11-openjdk-devel sudo dnf install -y java-11-openjdk-devel /usr/lib/jvm/java-11-openjdk-11.0.19/bin/java
JDK 17 java-17-openjdk-devel sudo dnf install -y java-17-openjdk-devel /usr/lib/jvm/java-17-openjdk-17.0.10/bin/java
JDK 21 java-21-openjdk-devel sudo dnf install -y java-21-openjdk-devel /usr/lib/jvm/java-21-openjdk-21.0.2/bin/java

一键安装脚本(完整版)

复制代码
#!/bin/bash
# Alibaba Cloud Linux 3 JDK 8/11/17/21 安装脚本

# 1. 更新系统
sudo dnf update -y

# 2. 安装基础工具
sudo dnf install -y wget tar

# 3. 添加 Adoptium 仓库
sudo dnf install -y https://packages.adoptium.net/artifactory/deb/$(lsb_release -cs)/pool/main/a/adoptium-java/adoptium-java-21_21.0.2.0-1-1_all.deb

# 4. 安装 JDK 8, 11, 17, 21
sudo dnf install -y java-1.8.0-openjdk-devel java-11-openjdk-devel java-17-openjdk-devel java-21-openjdk-devel

# 5. 注册到 alternatives
sudo alternatives --install /usr/bin/java java /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.372/bin/java 8
sudo alternatives --install /usr/bin/java java /usr/lib/jvm/java-11-openjdk-11.0.19/bin/java 11
sudo alternatives --install /usr/bin/java java /usr/lib/jvm/java-17-openjdk-17.0.10/bin/java 17
sudo alternatives --install /usr/bin/java java /usr/lib/jvm/java-21-openjdk-21.0.2/bin/java 21

# 6. 创建项目级切换脚本
echo '#!/bin/bash
jdk=$(cat .java-version)
case "$jdk" in
    8)
        sudo alternatives --set java /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.372/bin/java
        ;;
    11)
        sudo alternatives --set java /usr/lib/jvm/java-11-openjdk-11.0.19/bin/java
        ;;
    17)
        sudo alternatives --set java /usr/lib/jvm/java-17-openjdk-17.0.10/bin/java
        ;;
    21)
        sudo alternatives --set java /usr/lib/jvm/java-21-openjdk-21.0.2/bin/java
        ;;
    *)
        echo "错误:不支持的 JDK 版本 $jdk"
        exit 1
        ;;
esac
echo "✅ 已切换到 JDK $jdk"' > usejdk.sh
chmod +x usejdk.sh

echo "✅ JDK 8/11/17/21 安装完成!
- 项目级切换:在项目根目录创建 .java-version 文件(如 '21')
- 使用:./usejdk.sh"

📌 执行方式:

复制代码
chmod +x install_jdk.sh
./install_jdk.sh
相关推荐
Allen_LVyingbo9 分钟前
信息化部门在AI时代的编程转移路径分析(上)
人工智能·python·算法·健康医疗·数据库开发·时序数据库·数据库架构
程序猿乐锅11 分钟前
一文讲透缓存穿透、击穿和雪崩
java·redis·spring·缓存·mybatis
用户03321266636714 分钟前
Python 实现 Word/TXT 互转:附完整代码
python
常山云栈21 分钟前
Anaconda和uv的区别是什么?
python·anaconda·uv
xcl092525 分钟前
西安同城货运系统源码开发实战 核心功能实现与部署全指南
java·spring boot
pippocao31 分钟前
王者荣耀日志组件BqLog为什么这么快之1——高性能实时压缩日志
java
AC赳赳老秦35 分钟前
公开 CSV 数据集批量处理实战:用 OpenClaw 高效完成下载、清洗与标准化分析样本生成
java·开发语言·汇编·c++·python·deepseek·openclaw
尹人入圣1 小时前
市面上靠谱的IP驱动产业新场景新工具哪个好
网络·python·网络协议·tcp/ip
ym hyd 1111 小时前
慢性病精细化管理平台源码 Java+SpringBoot+Vue3 前后分离
java·vue.js·spring boot·毕设
程序猿乐锅1 小时前
【黑马点评 | 第七篇】Redis 分布式锁的两种实现
java·数据库·redis·分布式·spring·缓存