编译前需确保CentOS系统软件包为最新状态,避免因系统版本过旧导致兼容性问题。使用sudo yum update -y命令更新所有软件包。同时,需确认CentOS版本与目标JDK版本的兼容性(如CentOS 7建议使用OpenJDK 8或更早版本,CentOS 8及以上可使用OpenJDK 11及以上版本)。
编译Java源码需要多种开发库支持,缺失会导致编译错误。需安装的开发工具和依赖库包括:
sudo yum groupinstall "Development Tools"(包含gcc、make等基础工具);freetype-devel(字体处理)、libXtst-devel(输入设备支持)、libXrender-devel(图形渲染)、libXrandr-devel(屏幕配置)、libXi-devel(输入设备扩展);cups-devel(打印机支持)、libasound2-devel(音频支持);libffi-devel(外部函数接口)、autoconf(配置脚本生成)。sudo yum install命令逐一安装,或使用组合命令简化流程。根据项目需求选择合适的JDK版本:
javac);若仅需运行程序,选择JRE即可。wget https://download.java.net/java/GA/jdk11/openjdk-11_linux-x64_bin.tar.gz,解压至指定目录(如/usr/lib/jvm);sudo yum install java-1.8.0-openjdk-devel(CentOS 8及更早)或sudo dnf install java-latest-openjdk-devel(CentOS 9)。正确配置环境变量是编译和运行Java的基础,需设置JAVA_HOME和PATH:
/etc/profile或~/.bashrc),添加以下内容(以OpenJDK 11为例):export JAVA_HOME=/usr/lib/jvm/jdk-11
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
source /etc/profile或source ~/.bashrc。java -version和javac -version,应显示对应JDK版本信息。tar -xzvf openjdk-11_linux-x64_bin.tar.gz(若为下载的源码包);bash configure --with-boot-jdk=/path/to/bootJDK(/path/to/bootJDK需替换为已安装的JDK路径,如/usr/lib/jvm/java-11-openjdk);make images(编译过程较长,需等待,期间可能出现依赖缺失错误,需及时安装对应库)。sudo yum search 库名查找并安装(如sudo yum install freetype-devel);/etc/profile或~/.bashrc中的变量设置是否正确,确认source命令已执行;sudo yum install gcc升级gcc至最新版本;chmod或chown调整权限(如sudo chmod -R 755 /usr/local/java)。编译完成后,通过以下命令验证:
java -version,应显示编译的JDK版本(如openjdk version "11.0.12" 2021-07-20 LTS);HelloWorld.java),使用javac HelloWorld.java编译,再执行java HelloWorld,应输出“Hello World”。