☰
答辩前代码跑不起来
2026/10/10 12:20:35 网站建设 项目流程

代码在自己电脑上好好的,一到演示就出问题;或者昨天还能跑,今天突然报错。离答辩没几天,这种时候慌是没用的——按下面三类卡点依次排查,多数问题能在半小时内定位。

为什么先分类,而不是一上来就改代码

跑不起来的原因很多,但基本落在三类:环境 / 依赖、数据、逻辑。三类的问题现象不一样,排查顺序也不一样。

先用 30 秒判断属于哪一类:

现象

大概率属于

换台电脑就报错、一启动就崩、ClassNotFoundException/NoSuchMethodError

环境 / 依赖

能启动,但一登录、一查询就报错,或者列表空白

数据

能启动、库里有数据,可结果就是不对,或按钮点了没反应

逻辑

先归类,再动手。下面的命令以 Windows + JDK 17 + MySQL 8 为例;Mac / Linux 把netstat换成lsof -i:8080。

第 1 类:环境 / 依赖(换个电脑就跑不起来)

现象:在自己电脑能跑,拷给别人或换台电脑就报错;ClassNotFoundException、NoSuchMethodError、端口被占用。

自查顺序:

  1. 先看 JDK 版本对不对:

    正常会打印一行像java version "17.0.8"的版本信息。这里写 17、编译用的却是 21,后面就会出现UnsupportedClassVersionError。

  1. 再看 Maven 本身是否可用、依赖是否真的下全了(尤其换电脑之后):

    这里插一个我自己踩过的坑:如果mvn -v本身报找不到或无法加载主类 org.codehaus.plexus.classworlds.launcher.Launcher, 那不是项目的问题,是 Maven 自己的安装或环境变量出了问题——常见原因是M2_HOME/MAVEN_HOME指到了旧目录,或 Maven 的解压目录被移动过。先把这条修好,再谈依赖。

  1. 看端口是否被占用(应用起不来、启动日志戛然而止时先查这个):

    没有输出说明 8080 空闲;有占用时会打印类似TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 12345的记录,末尾那串数字就是占用进程的 PID,可以在任务管理器里按 PID 定位。

  1. 比对配置文件里的版本号:pom.xml中的依赖版本、数据库连接地址、账号密码。

常见修法:统一 JDK 版本;删掉本地仓库里对应的.lastUpdated文件后重新拉依赖;把访问不了的私服或代理配置改回公共仓库;把配置里的硬编码地址换成当前环境对应的地址。

第 2 类:数据(能启动,但功能一用就报错)

现象:服务能起来,但一登录、一查询就报错,或者页面空白、列表没数据。

自查顺序:

  1. 直接连数据库,先切库再看表在不在、有没有数据:
  1. 看能不能连上(顺便确认库名、端口):
  1. 看后端日志里那条 SQL 实际执行了什么、参数是什么——很多"查不到数据"其实是条件里多了一个null。

常见修法:补初始化数据(很多项目需要手动导入init.sql);检查字段类型与实体是否对应;检查连接串里的库名、时区、编码。

第 3 类:逻辑(数据没问题,但功能就是不对)

现象:能启动、库里有数据,但算出来的结果不对,或者某个按钮点了没反应。

自查顺序:

  1. 在关键分支打日志,确认代码有没有走到你想走的那一段;
  1. 从前端请求一路跟到后端 Controller,看参数有没有在中间传丢;
  1. 用一条很简单的输入复现一次,把排查范围尽量缩小。

常见修法:检查参数名前后端是否一致;检查空值处理(null参与运算);检查事务是否回滚,导致数据根本没落库。

按剩余时间决定先修哪一类

  • 只剩 1 天:优先让能演示的那条主流程跑通,其他功能先收起入口,别让报错弹到演示页面上;
  • 还有 3–5 天:先修环境(一次性解决"换电脑就能跑"),再修数据;
  • 还有 1 周以上:三类按顺序全部清一遍,顺便把自己的自测记录补上。

一句话总结

先把问题归类,再动手改。环境问题看版本,数据问题看库,逻辑问题打日志。

(本文由 AI 辅助整理框架与措辞,技术要点与命令均经本人实测核对。)

如果卡在同样的问题上,可以留言说清报错和版本,我按技术问题帮你判断。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询