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