Java项目运行的基础是JDK(Java Development Kit),需先在CentOS上安装并配置JDK。
yum包管理器安装OpenJDK(推荐,免费且稳定),例如安装OpenJDK 11:sudo yum update -y && sudo yum install java-11-openjdk-devel -y
java -version # 查看Java运行时版本
javac -version # 查看Java编译器版本(若安装的是JDK而非JRE)
/etc/profile文件,添加以下内容(替换为实际JDK路径):export JAVA_HOME=/usr/lib/jvm/java-11-openjdk # JDK安装路径
export PATH=$JAVA_HOME/bin:$PATH # 将JDK加入PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar # 类路径配置
保存后执行source /etc/profile使配置生效。将本地开发完成的Java项目传输至CentOS服务器,常用工具为scp(安全复制):
# 示例:将本地的my-java-project目录上传至服务器的/opt/deploy目录
scp -r /local/path/to/my-java-project user@your-server-ip:/opt/deploy
若项目为Maven/Gradle工程,需确保pom.xml(Maven)或build.gradle(Gradle)文件完整,以便后续编译。
根据项目类型(普通Java应用/Web应用)选择编译方式:
mvn clean package # 清理旧编译文件并打包,生成的JAR在target目录
gradle build # 构建项目,生成的JAR在build/libs目录
mvn clean package(生成的WAR在target目录);gradle war(生成的WAR在build/libs目录)。/opt/apps),使用java -jar命令运行:cd /opt/apps
nohup java -jar my-java-app.jar & # 后台运行,输出日志至nohup.out
webapps目录(如/opt/apache-tomcat-9.0.52/webapps),Tomcat会自动解压并部署:sudo cp /opt/deploy/my-webapp.war /opt/apache-tomcat-9.0.52/webapps/
部署完成后,Tomcat会在webapps目录下生成对应的解压文件夹(如my-webapp)。nohup命令,应用会在后台持续运行;如需停止,可通过ps -ef | grep java找到进程ID,再用kill -9 <PID>终止。startup.sh脚本(位于bin目录):/opt/apache-tomcat-9.0.52/bin/startup.sh
关闭服务则执行shutdown.sh。nohup.out日志文件,确认无报错信息:tail -f /opt/apps/nohup.out
http://your-server-ip:8080/your-app-context-path(如http://192.168.1.100:8080/my-webapp),若看到应用首页则部署成功。若应用需要对外提供服务,需开放对应端口(如Tomcat的8080端口):
sudo firewall-cmd --permanent --add-port=8080/tcp # 永久开放8080端口
sudo firewall-cmd --reload # 重新加载防火墙规则
若使用SELinux,需调整其策略(测试环境可临时关闭):
sudo setenforce 0 # 关闭SELinux(重启后失效)
生产环境建议配置SELinux规则而非直接关闭。
systemd创建服务单元文件,确保应用随服务器重启自动启动。例如,创建/etc/systemd/system/my-java-app.service文件,内容如下:[Unit]
Description=My Java Application
After=syslog.target network.target
[Service]
User=appuser # 运行应用的系统用户(建议使用非root)
ExecStart=/usr/bin/java -jar /opt/apps/my-java-app.jar
Restart=on-failure # 失败时自动重启
[Install]
WantedBy=multi-user.target
执行以下命令启用并启动服务:sudo systemctl daemon-reload
sudo systemctl start my-java-app
sudo systemctl enable my-java-app
-Xms初始堆内存、-Xmx最大堆内存),例如:nohup java -Xms512m -Xmx1024m -jar my-java-app.jar &
logrotate工具定期归档应用日志,避免日志文件过大。以上步骤覆盖了CentOS上Java项目部署的核心流程,具体操作可根据项目类型(普通Java应用/Web应用)、构建工具(Maven/Gradle)及环境需求(如是否需要数据库连接)进行调整。