阿里云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
相关推荐
阿米亚波几秒前
【C++ STL】std::array
java·开发语言·c++
奶糖 肥晨9 分钟前
mac系统中Java项目环境配置与问题解决全记录| 项目构建篇:Maven编译与打包
java·macos·maven
大数据魔法师20 分钟前
AI Agent - OpenAI从零开始完整学习教程(零基础入门+实战落地)
python
卷无止境27 分钟前
Python的魔术方法:那些藏在双下划线背后的魔法
后端·python
米码收割机27 分钟前
【Python】Django恒达科技门户网站(源码+文档)【独一无二】
数据库·python·科技
万亿少女的梦16832 分钟前
基于Spring Boot的乐助在线助农系统设计与实现
java·spring boot·mysql·敏感词过滤·助农系统
卷无止境40 分钟前
别再被"乱码"吓到了:Python文件操作的门道
后端·python
唐青枫1 小时前
Java Undertow 实战指南:从轻量 Web Server 到 Spring Boot 嵌入式容器
java
STLearner2 小时前
ICML 2026 | LLM×Graph论文总结[2]【Graph4LLM,Graph4Agent,智能体记忆(Memory)
大数据·人工智能·python·深度学习·学习·机器学习·数据挖掘
郭老二11 小时前
【Python】基本语法:装饰器语法糖@
python