📘 Alibaba Cloud Linux 3 JDK安装与配置指南
📋 目录
简介
本文档提供了在 Alibaba Cloud Linux 3 系统上安装和配置 Alibaba Dragonwell JDK 的完整指南。Dragonwell 是阿里巴巴基于 OpenJDK 开发的高性能、企业级 Java 开发工具包,经过大规模生产环境验证,具有更好的性能和稳定性。
🎯 适用场景
- Alibaba Cloud Linux 3 操作系统
- 需要高性能 Java 运行环境的生产环境
- 企业级 Java 应用开发与部署
Dragonwell JDK版本选择
📊 版本对比
| 版本 | Java版本 | 支持类型 | 推荐场景 |
|---|---|---|---|
| Dragonwell 8 | Java 8 | 维护版本 | 传统企业应用、兼容性需求高的项目 |
| Dragonwell 11 | Java 11 | 维护版本 | 现代化企业应用、Spring Boot 2.x |
| Dragonwell 17 | Java 17 | LTS (长期支持) | 新项目推荐、Spring Boot 3.x |
| Dragonwell 21 | Java 21 | LTS (长期支持) | 最新特性、高性能需求 |
💡 建议:新项目推荐使用 LTS 版本(17 或 21),以获得长期的安全更新和技术支持。
安装步骤
1️⃣ 更新系统包管理器
# 更新 yum 包索引
sudo yum update -y
2️⃣ 选择并安装所需版本
根据您的需求选择合适的版本进行安装:
🔸 安装 Dragonwell 8
sudo yum install -y java-1.8.0-alibaba-dragonwell-devel
🔸 安装 Dragonwell 11
sudo yum install -y java-11-alibaba-dragonwell-devel
🔸 安装 Dragonwell 17(LTS)
sudo yum install -y java-17-alibaba-dragonwell-devel
🔸 安装 Dragonwell 21(LTS)
sudo yum install -y java-21-alibaba-dragonwell-devel
3️⃣ 验证安装
安装完成后,验证 JDK 是否正确安装:
# 查看 Java 版本
java -version
# 查看 javac 版本
javac -version
# 查看安装路径
which java
预期输出示例(以 Dragonwell 17 为例):
openjdk version "17.0.x" 2023-xx-xx
Alibaba Dragonwell 17.0.x.x.x (build 17.0.x+x)
OpenJDK Runtime Environment (build 17.0.x+x)
OpenJDK 64-Bit Server VM (build 17.0.x+x, mixed mode, sharing)
环境变量配置
🔧 配置 JAVA_HOME
- 查找 JDK 安装路径
# 查找 JDK 安装位置
sudo find /usr/lib/jvm -name "java-*-alibaba-dragonwell*" -type d
- 编辑环境变量配置文件
# 编辑 /etc/profile 文件(全局配置)
sudo vi /etc/profile
# 或编辑用户配置文件(用户级配置)
vi ~/.bashrc
- 添加以下配置(以 Dragonwell 17 为例)
# Java Environment Variables
export JAVA_HOME=/usr/lib/jvm/java-17-alibaba-dragonwell
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$JAVA_HOME/bin:$PATH
- 使配置生效
# 重新加载配置文件
source /etc/profile
# 或
source ~/.bashrc
# 验证环境变量
echo $JAVA_HOME
版本管理
🔄 多版本共存与切换
当系统中安装了多个 JDK 版本时,可以使用 alternatives 命令管理默认版本:
查看已安装的 Java 版本
sudo alternatives --config java
设置默认 Java 版本
# 交互式选择
sudo alternatives --config java
# 直接设置(示例:设置 Dragonwell 17 为默认)
sudo alternatives --set java /usr/lib/jvm/java-17-alibaba-dragonwell/bin/java
sudo alternatives --set javac /usr/lib/jvm/java-17-alibaba-dragonwell/bin/javac
📝 创建版本切换脚本
创建便捷的版本切换脚本 switch-java.sh:
#!/bin/bash
# Java 版本切换脚本
case "$1" in
8)
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-alibaba-dragonwell
echo "切换到 Dragonwell 8"
;;
11)
export JAVA_HOME=/usr/lib/jvm/java-11-alibaba-dragonwell
echo "切换到 Dragonwell 11"
;;
17)
export JAVA_HOME=/usr/lib/jvm/java-17-alibaba-dragonwell
echo "切换到 Dragonwell 17"
;;
21)
export JAVA_HOME=/usr/lib/jvm/java-21-alibaba-dragonwell
echo "切换到 Dragonwell 21"
;;
*)
echo "用法: source switch-java.sh {8|11|17|21}"
return 1
;;
esac
export PATH=$JAVA_HOME/bin:$PATH
java -version
使用方法:
# 赋予执行权限
chmod +x switch-java.sh
# 切换到 Java 17
source switch-java.sh 17
常见问题
❓ Q1: 如何卸载已安装的 JDK?
# 查看已安装的 Dragonwell 包
rpm -qa | grep dragonwell
# 卸载指定版本(示例)
sudo yum remove -y java-17-alibaba-dragonwell-devel
❓ Q2: 如何查看 JDK 的详细信息?
# 查看 JVM 参数
java -XshowSettings:all -version
# 查看系统属性
java -XshowSettings:properties -version
❓ Q3: 如何优化 JVM 性能?
常用的 JVM 优化参数示例:
# 设置堆内存
export JAVA_OPTS="-Xms2g -Xmx4g"
# 启用 G1 垃圾收集器
export JAVA_OPTS="$JAVA_OPTS -XX:+UseG1GC"
# 启用 JVM 性能监控
export JAVA_OPTS="$JAVA_OPTS -XX:+PrintGCDetails -XX:+PrintGCDateStamps"
❓ Q4: Dragonwell 与 OpenJDK 的区别?
Dragonwell 基于 OpenJDK 开发,主要优势包括:
- 🚀 性能优化:针对阿里巴巴大规模场景优化
- 🔒 安全增强:及时的安全补丁和漏洞修复
- 🛠️ 功能增强:包含阿里巴巴内部实践的增强特性
- 📊 生产验证:经过大规模生产环境验证
📚 相关资源
📅 文档更新时间:2024年
📧 反馈建议:如有问题或建议,请提交 Issue 或 Pull Request