温馨提示×

ubuntu java服务怎样部署

小樊
36
2026-09-19 07:43:42
栏目: 编程语言

在 Ubuntu 上部署 Java 服务,通常有几种常见方式,取决于你是临时运行、生产环境还是容器化部署。下面我按「从简单到生产级」给你一套清晰方案。


一、基础环境准备

1. 安装 JDK

sudo apt update
sudo apt install openjdk-17-jdk -y

验证:

java -version

如果是 Spring Boot,推荐 JDK 17 / 21


二、最简单方式:直接运行 Jar 包

1. 上传 Jar 包

scp app.jar user@server:/opt/app/

2. 运行(测试)

java -jar app.jar

3. 后台运行

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

三、生产推荐:systemd 守护进程(最常用)

1. 创建服务文件

sudo vim /etc/systemd/system/myapp.service

示例:

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

[Service]
User=ubuntu
WorkingDirectory=/opt/app
ExecStart=/usr/bin/java -jar /opt/app/app.jar
SuccessExitStatus=143
Restart=always

[Install]
WantedBy=multi-user.target

2. 启动服务

sudo systemctl daemon-reload
sudo systemctl start myapp
sudo systemctl enable myapp

3. 查看状态

systemctl status myapp
journalctl -u myapp -f

✅ 优点:开机自启、崩溃自动重启、日志统一


四、使用 Nginx 反向代理(常见)

sudo apt install nginx -y
server {
    listen 80;
    server_name example.com;

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

五、Docker 部署(推荐现代方式)

1. Dockerfile

FROM openjdk:17-jdk-slim
COPY app.jar app.jar
ENTRYPOINT ["java","-jar","/app.jar"]

2. 构建运行

docker build -t myapp .
docker run -d -p 8080:8080 myapp

六、常见注意事项

  • ✅ 防火墙:sudo ufw allow 8080
  • ✅ 配置文件:使用 application.yml
  • ✅ 端口冲突:netstat -tunlp
  • ✅ JVM 参数:
java -Xms512m -Xmx1024m -jar app.jar

七、你可以告诉我这些,我给你更精准方案

  • Spring Boot / 普通 Java / 微服务
  • 是否要 HTTPS / 域名
  • 是否用 Docker / K8s
  • 开发测试还是生产环境

我可以直接帮你写 完整部署脚本 + systemd + nginx 配置

0