在 CentOS 上编译 Java(通常是 OpenJDK 或 Java 项目)时,提示“缺少包”是常见问题。下面按 最常见场景 给你一套排查和解决方法。
常见情况有 3 种:
javac 或 java 命令时提示缺少依赖下面分别说明。
sudo yum groupinstall -y "Development Tools"
或(CentOS 7/8):
sudo yum install -y gcc gcc-c++ make
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
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% 的“缺少包”问题都在这里
编译 OpenJDK 需要 低一个版本的 JDK:
java -version
如果没有:
sudo yum install -y java-1.8.0-openjdk-devel
或:
sudo yum install -y java-11-openjdk-devel
bash configure
如果提示类似:
configure: error: Could not find freetype
那就直接装对应 -devel 包:
sudo yum install -y freetype-devel
javac -version
如果没有:
sudo yum install -y java-11-openjdk-devel
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
国内建议配置镜像:
<mirror>
<id>aliyun</id>
<mirrorOf>central</mirrorOf>
<url>https://maven.aliyun.com/repository/central</url>
</mirror>
⚠️ 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
我可以 逐条告诉你该装什么包 ✅