如何阅读 Minecraft 崩溃报告

Minecraft 崩溃报告看起来很吓人,但它每次都遵循相同的结构。一旦你知道哪些行真正重要,通常一分钟内就能找到原因。本指南将带你了解报告所在位置、如何解读堆栈跟踪,以及如何将其转化为修复方案。

在哪里找到崩溃报告

每当游戏或服务器意外停止时,Minecraft 都会写入一份崩溃报告。在这里查看:

  • crash-reports/
    一个带时间戳的文件,例如 crash-2026-06-08_14.23.51-server.txt. 这是专门的、详细的报告。
  • logs/latest.log
    完整的运行日志。如果没有崩溃报告(进程只是退出了),错误就在这里,最底部。
  • logs/debug.log
    一个详细得多的日志,当 latest.log 不够详细时很有用。

在服务器上,这些文件夹位于服务器根目录;在客户端上,它们在 instance/.minecraft 文件夹内。始终按时间戳打开最新的文件。

崩溃报告的结构剖析

每份报告都有相同的部分,从上到下:

  • 标题与描述
    一行 Description,概括出了什么问题,外加时间。这是你的第一条线索。
  • 堆栈跟踪
    异常类型,然后是一系列显示其发生位置的代码行,后面通常跟着一个或多个 Caused by: 块。
  • 受影响的世界 / 详情
    对于世界或实体崩溃:涉及的坐标、维度以及实体/方块。
  • 系统详情
    Minecraft 版本、Java 版本、分配的内存、模组加载器以及完整的模组列表。诊断的黄金信息。

如何真正逐步地阅读它

  1. 阅读 Description 行。 这是一段通俗的概括,例如“Exception ticking entity”或“Unexpected error”。它已经告诉你类别了。
  2. 找到异常类型 在堆栈跟踪的顶部(例如 java.lang.OutOfMemoryError, NullPointerException, NoClassDefFoundError). 类型通常会直接点出问题。
  3. 跳到最后一个“Caused by:”。 当有多个链式连接时,最深的那个通常才是真正的根本原因,而不是第一个。
  4. 查找模组或插件名称 在包路径中(例如 com.somemod.Thing). 这会直接指向罪魁祸首。纯粹的 net.minecraft.* 跟踪则指向原版/世界数据。
  5. 检查系统详情。 确认 Java 版本与你的 Minecraft 版本匹配,查看分配了多少内存,并扫描模组列表是否有重复或过时的条目。
  6. 将症状与已知解决方案匹配。 用你找到的原因跳转到对应的解决方案(见下方示例)。

常见的堆栈跟踪在告诉你什么

  • OutOfMemoryError: Java heap space
    内存不足。请见 Out of Memory.
  • Exception ticking entity
    单个损坏的实体。请见 Ticking Entity.
  • A single server tick took 60.00 seconds
    服务器冻结了。请见 Watchdog Crash.
  • NoClassDefFoundError / ClassNotFoundException
    缺少库。请见 NoClassDefFoundError.
  • Exit code -1 with no crash report
    改为阅读 latest.log。请见 Error Code -1.

常见问题 页面浏览全部。

没有崩溃报告?阅读 latest.log

有时进程只是退出(通常退出码为 1 或 -1),而不写入崩溃报告。在这种情况下,真正的错误位于 logs/latest.log 的底部。从末尾向上滚动到第一行 ERROR、FATAL 或 Exception:那里就是出问题的地方。要理解日志格式本身,请见 理解 Minecraft 日志.

常见问题

在你服务器根目录的 crash-reports/ 文件夹或 instance/.minecraft 文件夹中,以崩溃的日期和时间命名。打开最新的文件。

崩溃报告是游戏停止时写入的聚焦快照。latest.log 是完整的运行日志。如果没有崩溃报告,错误就在 latest.log 的末尾。

查看堆栈跟踪中的包名以及最深处的“Caused by:”行。非原版包(非 net.minecraft)通常会指出负责的模组——可通过查看 System Details 中的模组列表进行确认。

可以,将崩溃报告粘贴或上传到 MCDoctor.ai,它会用通俗的语言解释原因和修复方法。