当前位置: 首页 > news >正文

ps -ef | grep java

修改完本地代码后,要让服务器上的后端生效,你需要完成打包、上传、重启这三个核心步骤。由于你是 Java Spring Boot 项目(从之前的ltd.newbee.mall包名推断),通常涉及 JAR 包或 WAR 包的替换。

以下是标准的操作流程:

第一步:本地重新打包

在 IDEA 或命令行中重新编译并打包你的项目。

  1. Maven/Gradle 清理与构建:
    • 确保修改的代码已保存。
    • 执行 Maven 的clean package命令。
    • 命令示例:mvn clean package -DskipTests
  2. 获取新文件:
    • 打包成功后,在项目的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.ymlapplication.properties中,部署时只改配置文件,不改代码。

总结流程:

  1. 本地mvn package
  2. WinSCP 上传新 jar 包。
  3. 修正代码中的文件路径为 Linux 路径(非常重要!)。
  4. 服务器kill旧进程,nohup java -jar启动新进程。

按照上述步骤操作即可完成服务的更新部署。

http://www.cnnetsun.cn/news/2831669.html

相关文章:

  • 从PoseCNN到Yolo-6D:2018年那几篇6D位姿估计论文,现在看还香吗?
  • Platinum-MD:让经典MiniDisc焕发新生的现代化音乐管理工具
  • 跨境元器件采购风险规避实战:从付款条款到物流选择的全面风控指南
  • 别再只会用analogWrite了!Arduino Uno的PWM引脚(3,5,6,9,10,11)详解与高级玩法
  • FastAdmin安装后别急着关页面!手把手教你配置PhpMyAdmin并管理你的第一个数据库
  • STM32 PID温度控制终极指南:从零到工业级实战解析
  • BetterNCM安装器:3分钟搞定网易云插件安装的完整指南
  • 落实合规自律,田蜜蜜获评“年度经济领军企业”深耕行业规范
  • LLM 辅助前端重构:从代码坏味道检测到自动修复的工程实践
  • 5个关键技巧彻底解决学术文档的数学符号排版难题
  • STM32F4网线热插拔修复记:从同事的遗留Bug到CubeMX+LWIP的优雅解法
  • Regex101离线版Electron打包踩坑实录:从网页到桌面应用的完整流程与体积优化思考
  • 七段数码管驱动全解析:从74LS47/48芯片原理到实战电路设计
  • 绝区零自动化助手:从日常任务到高阶挑战的完整解决方案
  • 2026香港在职EMBA深度测评:行业现状、选型标准与优质项目解析
  • BLDC无感控制实战:基于反电动势过零检测的参数配置与调试指南
  • 智能会议管理系统/视频直播点播EasyDSS打造一体化应急调度解决方案
  • QtChart动态曲线实战:从传感器数据到实时监控界面的完整搭建流程(Qt 5.15+)
  • STM32F4网线热插拔修复记:从同事的遗留Bug到CubeMX+LWIP的完整解决方案
  • 别再死记硬背了!用Python模拟GBN和SR协议,5分钟搞懂滑动窗口核心差异
  • CPT Markets:把流程清晰度做到位——框架解读与提示整理
  • Vue项目里用Stimulsoft Reports.js做报表,从数据绑定到打印导出的完整流程
  • COM3D2 MaidFiddler终极指南:5分钟快速掌握实时游戏编辑器
  • 避开ArcGIS IDW插值的三个常见坑:像元大小、搜索半径和幂参数到底怎么设?
  • 从MATLAB到单片机:手把手教你用C语言移植巴特沃斯滤波器(附完整代码)
  • 汽车以太网诊断新玩法:用CANoe仿真TLS DoIP数据流(附CAPL脚本思路)
  • Balena Etcher:当Windows便携版下载链接失效时,开源项目维护的挑战与机遇
  • 如何为你的音乐收藏找到完美归宿?foobox-cn终极美化指南
  • 3D点云标注技术挑战与开源解决方案:基于PCL/VTK的自动驾驶数据标注工具
  • 从LeetCode 938(二叉搜索树范围和)到200(岛屿数量):一套DFS模板刷通两类高频题