阿里云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
相关推荐
St_rive7 小时前
Page Object设计模式
java·开发语言·设计模式
CTA量化套保7 小时前
近期零基础量化学习:先分阶段,再用 AI 检查缺口
人工智能·python
风流 少年7 小时前
Spring AI 2.0:SSE
java·人工智能·spring
清水白石0087 小时前
Python 死锁排查全攻略:从线程卡死到锁依赖定位与工程化修复
linux·网络·python
凤山老林7 小时前
精细化流量治理:Spring Boot 动态特性开关与灰度发布体系
java·spring boot·后端
Elias不吃糖8 小时前
Langfuse 入门:Trace、Prompt、Dataset、Experiment、Evaluator
前端·python·prompt·langfuse
TechWayfarer8 小时前
批量查IP归属地,在线API、脚本、离线库怎么选?三种方案实测对比
网络·python·网络协议·tcp/ip
七牛开发者9 小时前
为什么 Go 很适合 AI 辅助开发?
数据库·人工智能·python·elasticsearch·log4j
河南凹凸环境艺术设计9 小时前
性价比高的民宿酒店设计企业
大数据·人工智能·python
Aphelios38010 小时前
一次锁内网络IO引发的Tomcat线程池“饿死”事故
java·开发语言·spring boot·elasticsearch·tomcat·网络io阻塞·线程池耗尽