Ubuntu 22.04 部署运行 SpringBoot Jar 完整教程(新手友好)
前置准备(服务器先装 JDK)
你的 yudao 项目是 Java 后端,必须先安装对应 JDK(一般 JDK8 / JDK17)
1. 安装 OpenJDK(以JDK17举例,主流)
# 更新软件源sudo apt update# 安装jdk17sudo apt install openjdk-17-jdk -y# 验证是否安装成功java -version
输出版本号即安装完成。
一、上传 jar 包到服务器
两种常用方式任选其一:
方式1:Xshell / FinalShell 内置 FTP 拖拽
连接服务器后,直接把本地 target/xxx.jar 拖到服务器目录,推荐放到 /home/app/
# 先创建存放目录mkdir -p /home/app# 进入目录cd /home/app
方式2:本地用 scp 命令上传(本地终端执行)
# 本地执行,把本地jar传到服务器scp /本地路径/yudao.jar 用户名@服务器IP:/home/app
二、临时运行(测试用,关闭终端程序就停)
进入 jar 所在目录
cd /home/app# 前台启动,能实时看日志java -jar yudao.jar
缺点:关闭SSH窗口、断开连接,服务立刻停止,只适合临时测试。
三、后台常驻运行(推荐,真正部署用)
方案1:nohup 后台运行(最简单,无需额外安装)
cd /home/app# 后台启动,日志输出到 app.lognohup java -jar yudao.jar > app.log 2>&1 &
参数说明:
nohup:脱离终端,关闭SSH不停止程序> app.log 2>&1:把控制台日志写入文件 app.log&:放到后台执行
配套常用命令
# 实时查看日志tail -f app.log# 查找java进程,关闭服务ps -ef | grep java# 杀掉进程(数字是查到的PID)kill -15 进程号# 强制杀(卡死时用)kill -9 进程号
方案2:systemd 系统服务(生产/测试服务器最优,开机自启)
1. 创建服务配置文件
sudo vim /etc/systemd/system/yudao.service
粘贴下面内容(按需修改:JDK路径、jar路径)
[Unit]Description=yudao后端服务After=network.target[Service]# 执行用户,用你的服务器用户名,比如ubuntuUser=ubuntu# jar包所在目录WorkingDirectory=/home/app# java启动命令ExecStart=/usr/bin/java -jar yudao.jar# 崩溃自动重启Restart=on-failureRestartSec=5[Install]# 开机自动启动WantedBy=multi-user.target
保存退出:按 ESC,输入 :wq 回车。
2. 加载配置、管理服务
# 重载systemd配置sudo systemctl daemon-reload# 启动服务sudo systemctl start yudao# 设置开机自启sudo systemctl enable yudao# 查看运行状态sudo systemctl status yudao# 停止服务sudo systemctl stop yudao# 实时看日志journalctl -u yudao -f
四、防火墙放行端口(重点!不然本地访问不通)
项目默认端口一般 8080,需要防火墙开放端口
# 放行8080端口sudo ufw allow 8080/tcp# 查看防火墙规则sudo ufw status
如果服务器有阿里云/腾讯云安全组,控制台也要放行对应端口,否则外网无法访问。
五、打包提速小补充(回到你之前Maven操作)
本地打包上传服务器时,跳过单元测试,打包更快: 在 IDEA 选「运行Maven构建」,输入命令:
clean install -DskipTests
新手排坑常见问题
- 启动报错端口占用
# 查看哪个程序占用8080sudo lsof -i :8080kill 对应进程号
- 内存不足启动失败
启动时限制内存,示例:
java -Xms256m -Xmx512m -jar yudao.jar
- 日志太多占磁盘 用systemd管理自带日志轮转,不用手动清理文件;nohup方案可定期清理app.log。
- 上传jar后权限不足
chmod 755 yudao.jar
