温馨提示×

centos怎么部署java项目

小樊
33
2026-09-14 21:12:46
栏目: 编程语言

在 CentOS 上部署 Java 项目,通常分为 环境准备 → 项目打包 → 上传服务器 → 运行/后台运行 → (可选)反向代理/开机自启 几个步骤。下面给你一套最常用、实用的方案


一、环境准备(CentOS)

1. 安装 JDK

推荐使用 JDK 8 或 JDK 11(根据项目要求)

# 查看可用版本
yum list java-*openjdk*

# 安装 JDK 8
sudo yum install -y java-1.8.0-openjdk-devel

# 验证
java -version

如果是 Spring Boot 项目,JDK 即可,不需要 Tomcat。


2. (可选)安装 Maven(仅打包用)

如果服务器上需要打包:

sudo yum install -y maven
mvn -version

二、Java 项目部署方式

✅ 方式一:Spring Boot(Jar 包,最推荐)

1. 本地打包

mvn clean package -DskipTests

生成:

target/xxx.jar

2. 上传到服务器

scp target/xxx.jar root@服务器IP:/opt/java/

3. 运行项目

cd /opt/java
java -jar xxx.jar

4. 后台运行(推荐)

nohup java -jar xxx.jar > app.log 2>&1 &

查看日志:

tail -f app.log

✅ 方式二:传统 Web 项目(War 包 + Tomcat)

1. 安装 Tomcat

yum install -y tomcat

或手动下载:

wget https://archive.apache.org/tomcat/tomcat-9/v9.0.85/bin/apache-tomcat-9.0.85.tar.gz
tar -zxvf apache-tomcat-9.0.85.tar.gz -C /opt/

2. 部署 War

cp xxx.war /opt/tomcat/webapps/

3. 启动 Tomcat

/opt/tomcat/bin/startup.sh

访问:

http://IP:8080/xxx

三、防火墙 & 端口

# 开放端口
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --reload

如果是云服务器,还要在安全组放通端口。


四、用 Nginx 反向代理(生产推荐)

yum install -y nginx

配置示例:

server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://127.0.0.1:8080;
    }
}
systemctl restart nginx

五、设置开机自启(systemd)

Spring Boot 示例

vim /etc/systemd/system/javaapp.service

内容:

[Unit]
Description=Java App
After=network.target

[Service]
User=root
ExecStart=/usr/bin/java -jar /opt/java/xxx.jar
SuccessExitStatus=143

[Install]
WantedBy=multi-user.target

启动:

systemctl daemon-reload
systemctl start javaapp
systemctl enable javaapp

六、常见问题

  • 端口被占用
lsof -i:8080
  • 内存不足
java -Xms256m -Xmx512m -jar xxx.jar
  • CentOS 7 已停止维护 建议新项目用 Rocky / AlmaLinux

如果你愿意,可以告诉我:

  • ✅ 是 Spring Boot 还是普通 Java 项目
  • ✅ CentOS 版本(7 / 8 / Stream)
  • ✅ 是否需要 Docker 部署

我可以直接给你专属部署命令

0