📘 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 8Java 8维护版本传统企业应用、兼容性需求高的项目
Dragonwell 11Java 11维护版本现代化企业应用、Spring Boot 2.x
Dragonwell 17Java 17LTS (长期支持)新项目推荐、Spring Boot 3.x
Dragonwell 21Java 21LTS (长期支持)最新特性、高性能需求

💡 建议:新项目推荐使用 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

  1. 查找 JDK 安装路径
# 查找 JDK 安装位置
sudo find /usr/lib/jvm -name "java-*-alibaba-dragonwell*" -type d
  1. 编辑环境变量配置文件
# 编辑 /etc/profile 文件(全局配置)
sudo vi /etc/profile

# 或编辑用户配置文件(用户级配置)
vi ~/.bashrc
  1. 添加以下配置(以 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
  1. 使配置生效
# 重新加载配置文件
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