在 CentOS 和 Ubuntu 上运行 Java 需要安装的依赖有所不同,以下是详细说明:
一、通用依赖(两个系统都需要)
1. Java 运行时环境
# OpenJDK(推荐)
# JDK(包含开发工具)或 JRE(仅运行时)
# 或者 Oracle JDK(需要手动下载或添加仓库)
2. 系统基础依赖
- glibc:标准 C 库(通常已安装)
- 字体库(如果应用需要显示文字):
- fontconfig
- dejavu-fonts 等字体包
二、CentOS/RHEL 系统
1. 安装 OpenJDK
# 查看可用版本
yum search openjdk
# 安装 OpenJDK 11
sudo yum install java-11-openjdk-devel # 开发版本(含编译器)
sudo yum install java-11-openjdk # 仅运行时
# 安装 OpenJDK 8
sudo yum install java-1.8.0-openjdk-devel
2. 常用依赖包
# 字体支持
sudo yum install fontconfig
sudo yum install dejavu-sans-fonts
# 其他可能需要的依赖
sudo yum install libXext libXrender libXtst
sudo yum install alsa-lib # 音频支持
sudo yum install cups-libs # 打印支持
三、Ubuntu/Debian 系统
1. 安装 OpenJDK
# 更新包列表
sudo apt update
# 安装 OpenJDK 11
sudo apt install openjdk-11-jdk # 开发版本
sudo apt install openjdk-11-jre # 仅运行时
# 安装 OpenJDK 8
sudo apt install openjdk-8-jdk
2. 常用依赖包
# 字体支持
sudo apt install fontconfig
sudo apt install fonts-dejavu
# 其他可能需要的依赖
sudo apt install libxext6 libxrender1 libxtst6
sudo apt install libasound2 # 音频支持
sudo apt install libcups2 # 打印支持
四、验证安装
# 检查 Java 版本
java -version
# 检查 Java 编译器(如果安装了 JDK)
javac -version
# 查看 Java 安装路径
which java
readlink -f $(which java)
五、环境变量配置(可选)
1. 设置 JAVA_HOME
# CentOS/RHEL
echo 'export JAVA_HOME=/usr/lib/jvm/java-11-openjdk' >> ~/.bashrc
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
# Ubuntu/Debian
echo 'export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64' >> ~/.bashrc
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
2. 使用 alternatives 管理多个版本(CentOS)
sudo alternatives --config java
六、Docker 环境中的最小依赖
如果使用 Docker,基础镜像通常已包含必要依赖:
# 使用官方 OpenJDK 镜像
FROM openjdk:11-jre-slim # Ubuntu 基础
# 或
FROM openjdk:11-jre-centos # CentOS 基础
七、注意事项
- 权限问题:确保 Java 安装目录有适当的访问权限
- 防火墙:如果 Java 应用需要网络访问,配置防火墙规则
- SELinux(CentOS):可能需要调整 SELinux 策略
- 内存限制:根据应用需求调整 JVM 内存参数
- 时区设置:确保系统时区正确,影响 Java 时间处理
八、快速安装脚本示例
CentOS
#!/bin/bash
sudo yum install -y java-11-openjdk-devel fontconfig dejavu-sans-fonts
Ubuntu
#!/bin/bash
sudo apt update
sudo apt install -y openjdk-11-jdk fontconfig fonts-dejavu
根据你的具体应用需求,可能还需要安装其他特定依赖,如数据库驱动、网络库等。
CLOUD技术笔记