ps -ef | grep java
修改完本地代码后,要让服务器上的后端生效,你需要完成打包、上传、重启这三个核心步骤。由于你是 Java Spring Boot 项目(从之前的ltd.newbee.mall包名推断),通常涉及 JAR 包或 WAR 包的替换。
以下是标准的操作流程:
第一步:本地重新打包
在 IDEA 或命令行中重新编译并打包你的项目。
- Maven/Gradle 清理与构建:
- 确保修改的代码已保存。
- 执行 Maven 的
clean package命令。 - 命令示例:
mvn clean package -DskipTests
- 获取新文件:
- 打包成功后,在项目的
target目录下会生成一个新的.jar文件(例如newbee-mall-api-1.0.jar)。这就是你要上传的文件。
- 打包成功后,在项目的
第二步:上传到服务器
使用工具将新生成的 JAR 包传输到 Linux 服务器。
常用工具
- WinSCP / Xftp:图形化界面,直接拖拽覆盖即可(推荐新手使用)。
- SCP 命令:如果你熟悉命令行,可以在本地终端使用:
scp target/newbee-mall-api-1.0.jar root@你的服务器IP:/opt/app/
注意事项
- 建议先备份旧文件:
cp newbee-mall-api-1.0.jar newbee-mall-api-1.0.jar.bak,以防万一需要回滚。
第三步:重启后端服务
上传完成后,必须重启 Java 进程才能加载新的代码。
查找进程 ID (PID)
ps -ef | grep java # 或者 ps -ef | grep newbee找到对应你项目的 PID(第一列的数字)。
杀掉旧进程
kill -9 <PID>启动新进程
建议使用nohup让程序在后台运行,并将日志输出到文件中:
nohup java -jar newbee-mall-api-1.0.jar > log.out 2>&1 &⚠️ 关键检查点:关于文件路径的改动
你在之前的对话中提到修改了addResourceHandlers中的物理路径。请务必确认以下一点,否则图片依然无法显示:
服务器上的文件路径必须存在!
你在代码里写的是 Windows 风格的路径:
"file:D:\\LeStoreDownload\\...\\upload\\"Linux 服务器上是没有 D 盘的!如果你直接把这段代码部署到 Linux,程序启动时可能会报错,或者找不到图片。
你需要做以下改动之一:
- 方案 A(推荐):将图片上传到 Linux 的某个目录(例如
/home/upload/),然后修改代码为 Linux 路径:"file:/home/upload/" - 方案 B(不推荐):如果一定要用原来的路径结构,你需要在 Linux 上创建对应的目录结构,但这非常别扭。
- 方案 C(配置文件外置):最好的做法是将这个路径写在
application.yml或application.properties中,部署时只改配置文件,不改代码。
总结流程:
- 本地
mvn package。 - WinSCP 上传新 jar 包。
- 修正代码中的文件路径为 Linux 路径(非常重要!)。
- 服务器
kill旧进程,nohup java -jar启动新进程。
按照上述步骤操作即可完成服务的更新部署。
