CentOS 上 Java 项目部署全流程
一 环境准备
sudo yum install java-1.8.0-openjdk-devel -y,完成后用 java -version、javac -version 验证。若需 OpenJDK 11,可用 sudo yum install java-11-openjdk-devel -y。/etc/profile 或 /etc/profile.d/java.sh,加入export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdkexport PATH=$JAVA_HOME/bin:$PATHsource /etc/profile 生效。wget https://downloads.apache.org/tomcat/tomcat-9/v9.0.53/bin/apache-tomcat-9.0.53.tar.gztar -xvf apache-tomcat-9.0.53.tar.gz -C /optCATALINA_HOME=/opt/apache-tomcat-9.0.53 并加入 PATH,便于随处启动。sudo firewall-cmd --permanent --add-port=8080/tcp && sudo firewall-cmd --reload。二 构建与上传
mvn clean package,产物在 target/xxx.jar。gradle build,产物在 build/libs/xxx.jar。javac 编译后 jar cvfe app.jar com.example.Main -C bin . 打包。scp target/app.jar user@your_ip:/opt/app/scp target/app.war user@your_ip:/opt/apache-tomcat-9.0.53/webapps/。/opt/app/(应用)、/opt/logs/(日志)、/opt/conf/(配置)。三 运行与进程管理
cd /opt/app && java -jar app.jarnohup java -jar app.jar > /opt/logs/app.log 2>&1 &sudo vi /etc/systemd/system/myapp.service,内容示例:[Unit]
Description=My Java Application
After=syslog.target network.target
[Service]
User=appuser
WorkingDirectory=/opt/app
ExecStart=/usr/bin/java -jar /opt/app/app.jar
SuccessExitStatus=143
Restart=on-failure
RestartSec=10
Environment="JAVA_OPTS=-Xms512m -Xmx1g"
[Install]
WantedBy=multi-user.target
启用与启动:sudo systemctl daemon-reload && sudo systemctl start myapp && sudo systemctl enable myappsudo systemctl status myapp、journalctl -u myapp -f。四 Web 应用部署 Tomcat
target/app.war 复制到 $CATALINA_HOME/webapps/,Tomcat 会自动解压部署。$CATALINA_HOME/bin/startup.sh 或 systemctl start tomcat(若已配置为服务)http://your_server_ip:8080/app(上下文路径即 WAR 文件名,若需 ROOT 则重命名为 ROOT.war)。$CATALINA_HOME/bin/shutdown.shwebapps 下 WAR 并重启,或使用 Tomcat Manager。五 进阶建议
systemd 的 Environment="JAVA_OPTS=..." 中设置堆内存(如 -Xms512m -Xmx1g)、GC 策略、JMX 等;为应用创建专用系统用户(如 appuser)并最小权限运行。/opt/logs/,结合 journalctl 或日志轮转(logrotate);可按需接入 Prometheus + Grafana、ELK。docker run 或编排工具部署,提升一致性与可回滚性。