温馨提示×

CentOS编译Java缺少包怎么办

小樊
41
2026-08-19 17:10:17
栏目: 编程语言

CentOS 上编译 Java(通常是 OpenJDK 或 Java 项目)时,提示“缺少包”是常见问题。下面按 最常见场景 给你一套排查和解决方法。


一、先确认你是在做什么

常见情况有 3 种:

  1. 编译 OpenJDK 源码
  2. 编译 Java 项目(Maven / Gradle)
  3. 运行 javacjava 命令时提示缺少依赖

下面分别说明。


二、如果是编译 OpenJDK(最常见)

1️⃣ 安装必要的开发工具

sudo yum groupinstall -y "Development Tools"

或(CentOS 7/8):

sudo yum install -y gcc gcc-c++ make

2️⃣ 安装 OpenJDK 编译依赖(非常重要)

CentOS 7 示例

sudo yum install -y \
  autoconf \
  automake \
  libtool \
  cups-devel \
  libX11-devel \
  libXext-devel \
  libXrender-devel \
  libXtst-devel \
  libXt-devel \
  libXrandr-devel \
  alsa-lib-devel \
  freetype-devel \
  fontconfig-devel \
  zip \
  unzip \
  libffi-devel \
  pkg-config

CentOS 8 / Stream

sudo dnf install -y \
  autoconf automake libtool \
  cups-devel \
  libX11-devel \
  libXext-devel \
  libXrender-devel \
  libXtst-devel \
  libXt-devel \
  libXrandr-devel \
  alsa-lib-devel \
  freetype-devel \
  fontconfig-devel \
  zip unzip \
  libffi-devel \
  pkg-config

90% 的“缺少包”问题都在这里


3️⃣ 确认已有 Boot JDK

编译 OpenJDK 需要 低一个版本的 JDK

java -version

如果没有:

sudo yum install -y java-1.8.0-openjdk-devel

或:

sudo yum install -y java-11-openjdk-devel

4️⃣ 运行 configure 看缺什么

bash configure

如果提示类似:

configure: error: Could not find freetype

那就直接装对应 -devel 包:

sudo yum install -y freetype-devel

三、如果是编译 Java 项目(Maven / Gradle)

1️⃣ 确认 JDK 已安装(不是 JRE)

javac -version

如果没有:

sudo yum install -y java-11-openjdk-devel

2️⃣ Maven 缺包

sudo yum install -y maven

或手动下载:

wget https://dlcdn.apache.org/maven/maven-3/3.9.6/binaries/apache-maven-3.9.6-bin.tar.gz

3️⃣ 网络问题导致依赖下不到

国内建议配置镜像:

<mirror>
  <id>aliyun</id>
  <mirrorOf>central</mirrorOf>
  <url>https://maven.aliyun.com/repository/central</url>
</mirror>

四、CentOS 已经 EOL 的情况(非常重要)

⚠️ CentOS 7 已停止维护(2024-06-30)

如果 yum install 报错:

Cannot find a valid baseurl

需要切换源:

sudo sed -i 's|mirrorlist=|#mirrorlist=|g' /etc/yum.repos.d/CentOS-*.repo
sudo sed -i 's|#baseurl=http://mirror.centos.org|baseurl=https://vault.centos.org|g' /etc/yum.repos.d/CentOS-*.repo

然后:

sudo yum clean all
sudo yum makecache

五、快速排查清单 ✅

✅ 是否装了 -devel
✅ 是否用的是 JDK 而不是 JRE
✅ 是否缺少 gcc / make
✅ CentOS 源是否还能用
bash configure 报的具体缺哪个库


六、如果你愿意,我可以直接帮你定位

你可以直接把 完整报错信息 发出来,例如:

configure: error: Could not find alsa

或者:

error: package javax.servlet does not exist

我可以 逐条告诉你该装什么包

0