Ubuntu 22.04 部署运行 SpringBoot Jar 完整教程(新手友好)

前置准备(服务器先装 JDK)

你的 yudao 项目是 Java 后端,必须先安装对应 JDK(一般 JDK8 / JDK17)

1. 安装 OpenJDK(以JDK17举例,主流)

  1. # 更新软件源
  2. sudo apt update
  3. # 安装jdk17
  4. sudo apt install openjdk-17-jdk -y
  5. # 验证是否安装成功
  6. java -version

输出版本号即安装完成。

一、上传 jar 包到服务器

两种常用方式任选其一:

方式1:Xshell / FinalShell 内置 FTP 拖拽

连接服务器后,直接把本地 target/xxx.jar 拖到服务器目录,推荐放到 /home/app/

  1. # 先创建存放目录
  2. mkdir -p /home/app
  3. # 进入目录
  4. cd /home/app

方式2:本地用 scp 命令上传(本地终端执行)

  1. # 本地执行,把本地jar传到服务器
  2. scp /本地路径/yudao.jar 用户名@服务器IP:/home/app

二、临时运行(测试用,关闭终端程序就停)

进入 jar 所在目录

  1. cd /home/app
  2. # 前台启动,能实时看日志
  3. java -jar yudao.jar

缺点:关闭SSH窗口、断开连接,服务立刻停止,只适合临时测试

三、后台常驻运行(推荐,真正部署用)

方案1:nohup 后台运行(最简单,无需额外安装)

  1. cd /home/app
  2. # 后台启动,日志输出到 app.log
  3. nohup java -jar yudao.jar > app.log 2>&1 &

参数说明:

  1. nohup:脱离终端,关闭SSH不停止程序
  2. > app.log 2>&1:把控制台日志写入文件 app.log
  3. &:放到后台执行

配套常用命令

  1. # 实时查看日志
  2. tail -f app.log
  3. # 查找java进程,关闭服务
  4. ps -ef | grep java
  5. # 杀掉进程(数字是查到的PID)
  6. kill -15 进程号
  7. # 强制杀(卡死时用)
  8. kill -9 进程号

方案2:systemd 系统服务(生产/测试服务器最优,开机自启)

1. 创建服务配置文件

  1. sudo vim /etc/systemd/system/yudao.service

粘贴下面内容(按需修改:JDK路径、jar路径)

  1. [Unit]
  2. Description=yudao后端服务
  3. After=network.target
  4. [Service]
  5. # 执行用户,用你的服务器用户名,比如ubuntu
  6. User=ubuntu
  7. # jar包所在目录
  8. WorkingDirectory=/home/app
  9. # java启动命令
  10. ExecStart=/usr/bin/java -jar yudao.jar
  11. # 崩溃自动重启
  12. Restart=on-failure
  13. RestartSec=5
  14. [Install]
  15. # 开机自动启动
  16. WantedBy=multi-user.target

保存退出:按 ESC,输入 :wq 回车。

2. 加载配置、管理服务

  1. # 重载systemd配置
  2. sudo systemctl daemon-reload
  3. # 启动服务
  4. sudo systemctl start yudao
  5. # 设置开机自启
  6. sudo systemctl enable yudao
  7. # 查看运行状态
  8. sudo systemctl status yudao
  9. # 停止服务
  10. sudo systemctl stop yudao
  11. # 实时看日志
  12. journalctl -u yudao -f

四、防火墙放行端口(重点!不然本地访问不通)

项目默认端口一般 8080,需要防火墙开放端口

  1. # 放行8080端口
  2. sudo ufw allow 8080/tcp
  3. # 查看防火墙规则
  4. sudo ufw status

如果服务器有阿里云/腾讯云安全组,控制台也要放行对应端口,否则外网无法访问。

五、打包提速小补充(回到你之前Maven操作)

本地打包上传服务器时,跳过单元测试,打包更快: 在 IDEA 选「运行Maven构建」,输入命令:

  1. clean install -DskipTests

新手排坑常见问题

  1. 启动报错端口占用
    1. # 查看哪个程序占用8080
    2. sudo lsof -i :8080
    3. kill 对应进程号
  2. 内存不足启动失败 启动时限制内存,示例:
    1. java -Xms256m -Xmx512m -jar yudao.jar
  3. 日志太多占磁盘 用systemd管理自带日志轮转,不用手动清理文件;nohup方案可定期清理app.log。
  4. 上传jar后权限不足
    1. chmod 755 yudao.jar