Agent Skills
返回列表
Java 启动排错助手

Java 启动排错助手

开发编程 更新于 2026.08.30

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_b4da0893/java-startup-troubleshoot-cn。

技能介绍

为什么启动排错总在浪费时间

Java 应用启动失败时,开发者最常做的事是把日志最后 20 行复制到搜索引擎里,结果往往是 ApplicationContext 相关的模糊报错。这些异常通常是包装结果——真正的原因藏在 caused by 链的深处,可能是:

  • 一个配置键拼写错误或单位不对
  • 一个条件装配未匹配但未解释原因
  • 一个外部依赖就绪状态未满足但日志只显示连接超时

盲目地改配置、排除自动配置、甚至允许循环依赖"先让应用起来",只会把明确失败变成带错误配置运行,后续问题更难排查。

从失败阶段到最小验证

这个技能把排错流程拆成十个可执行步骤。第一步是固定可执行身份——记录构建提交、产物摘要和 Java 运行时版本,确保分析的是预期产物而非过期构建。第二步是固定配置上下文——列出命令行参数、环境变量键、外部配置文件和远程配置来源,不输出秘密值但保留来源指纹和优先级。

第三步到第四步是核心:标注启动阶段并将失败定位到最窄区间(JVM 与类加载、配置绑定、上下文创建、组件实例化等),然后沿 caused by 和 suppressed 链还原异常因果链,去除重复包装,选择最深且包含具体对象、键或资源的可执行原因。

第五步到第九步分诊配置绑定、组件图、条件装配和外部依赖。配置问题要区分"读取不到"和"读取到错误配置";组件问题要从失败组件反向列出依赖路径;条件装配要解释为何匹配或未匹配;外部依赖要分别验证连接、认证、迁移状态和就绪状态。

第十步是单变量修复并回归,保留前后日志和产物指纹,同时验证冷启动、重复启动、关键接口和优雅停止。

适用边界

这个技能是只读诊断工具:

  • 不默认关闭配置校验、健康检查或安全机制
  • 不用允许循环依赖掩盖组件设计问题
  • 不盲目排除自动配置或删除依赖
  • 不在未备份时清理数据库或迁移记录
  • 进程存活不等于应用就绪,Started 后仍需验证监听和真实请求

使用场景

  • 本地能启动但部署环境失败,需要比较产物、Java、配置和外部依赖差异
  • 升级 Java 或框架后启动异常,需要定位条件装配和依赖变化
  • 启动日志显示 Started 但探针仍失败,需要验证监听和健康检查
  • 数据库启动慢或失败,需要区分连接、迁移锁和池初始化

适合人员

  • Java 后端工程师,排查本地到测试、生产环境的启动差异和根因
  • 微服务架构师,分析服务间依赖和外部资源就绪状态
  • 运维和 SRE,在不修改配置和生产环境的情况下做只读诊断
  • 测试工程师,复现启动故障并验证最小修复的回归影响