阿里云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
相关推荐
liangbo78 分钟前
06-JVM垃圾回收器之CMS
java·jvm
ever_up9739 分钟前
LangChain基础知识概述1
人工智能·python·langchain
黑马程序员毕设10 分钟前
基于Java的仪器管理系统设计与实现
java·开发语言·spring boot·后端·微信小程序
骇客野人23 分钟前
SpringBoot电商购物车、结算、下单、库存方案设计与落地实施步骤
java·spring boot·后端
asdzx6730 分钟前
Python 实现 PDF 文本查找与高亮标注
开发语言·python·pdf
zander25834 分钟前
LeetCode 1143. 最长公共子序列
开发语言·python·算法
哪 吒42 分钟前
华为OD机试 - 云服务安全策略最优选择 - 深度优先搜索DFS(Java 新系统 200分)
java·华为od·深度优先
拒绝内耗。44 分钟前
程序员学架构(一):一张图看懂 Java 后端架构:一个请求怎样从手机到数据库?
java·智能手机·架构
棣廷1 小时前
初识Python面向对象
java·开发语言
用户3126874877201 小时前
ThreadLocal 到底会不会内存泄漏?源码级拆解 + 线程池陷阱
java