Minexa说明书
参考故障排查

日志关键词与错误代码索引

终端里看到一行红字,不知道什么意思?按关键词查:含义、常见原因、下一步去哪。

终端里滚过一行红字,你只看到 Exception,剩下的全是英文和类名。截图发群里,等半小时没人回;自己搜,搜出来的全是英文论坛。

这一页是一张“查词表”:把你看到的关键词圈出来,对照含义、最常见的原因和下一步,不用读懂整段堆栈。

用它的方式很朴素:先找到那行字,再在下面几张表里搜一遍。命中就按“去哪”那列走;不命中,再按最后一节的四个动作继续缩小。

本页要点
  • 只取异常的第一行:java.lang.XxxException: 具体消息。后面几十行 at ... 先别看。

  • 根因通常在 最后一个 Caused by:,不是最外层那句“启动失败”。

  • 真正要处理的是重复出现的 ERROR;只出现一次的 WARN 大多可以放着。

  • 退出码 137 更可能是被系统杀的,不等于一定是内存不足。

  • 终端没有搜索框,先「复制当前日志」,粘到别处再搜。

这张表怎么用:三步#

  1. 只取第一行。堆栈的第一行才有信息量,后面的 at net.minecraft... 是调用路径,对判断方向没帮助。

  2. 往下找 Caused by:。Java 异常层层包裹,最后一段才是根因。只有一段时,第一行就是根因。

  3. 对照下面的表,按“去哪”那列走。每张表都按主题分好了,从你最怀疑的那类开始。

终端能看多少、能复制多少

终端屏幕上最多显示 300 行,单行超过 400 字符会被截断。但「复制当前日志」复制的是整段会话日志,比屏幕上看到的多——所以出问题时先点复制,再慢慢看。终端没有搜索、没有导出、也没有命令历史,这也是要复制出去的原因。用法见 终端与快捷指令。

Java 与启动#

关键词含义常见原因去哪
UnsupportedClassVersionErrorJava 版本不对,跑不了这个核心核心要 21,你给了 17Java 版本
class file version 65.0服务端要求的 Java 版本65 = Java 21,61 = Java 17Java 版本
requires Java 21 or higher核心明确要求更高 Java环境版本偏低运行环境
Could not find or load main class找不到主类jar 损坏、启动参数错启动失败
no main manifest attribute这个 jar 不是可执行服务端下载成 API 包或源码包下载核心
Unable to access jarfile找不到 jar 文件文件名/路径不对启动失败
Invalid or corrupt jarfilejar 文件损坏下载中断、存储写坏下载核心
You need to agree to the EULA服务端认为 EULA 没同意你手动把 eula.txt 改成了 false启动失败

端口与网络#

关键词含义常见原因去哪
FAILED TO BIND TO PORT端口监听失败端口被占用、端口号 <1024启动失败
Address already in use端口已被别的进程占用上一个服务端没退干净启动失败
BindException绑定端口时报错同上启动失败
Connection refused对方端口没开服务端没起、映射填错客户端报错
Connection timed out连接超时防火墙/NAT/地址错联机排错
Unknown host / UnknownHostException域名解析失败域名拼错、无网络客户端报错
Invalid session正版会话失效启动器登录过期客户端报错
Failed to verify username用户名验证失败正版/离线模式混用客户端报错

模组与插件#

模组#

关键词含义常见原因去哪
requires mod ... which is missing缺前置模组只装了主模组模组冲突
Incompatible mod set!模组集合不兼容游戏版本或加载器混用模组冲突
Mixin apply failedMixin 注入失败两个模组改同一处模组冲突
Duplicate mod同一个模组装了两份新旧 jar 并存模组冲突
Mod resolution模组依赖解析失败版本链对不上模组冲突
fabricloader / mod loading has failed加载器阶段就失败核心与模组不配套模组安装

插件#

关键词含义常见原因去哪
Unsupported api-version插件要求的 API 版本更高核心太旧、插件太新插件管理
Could not load plugin ... main class主类找不到jar 损坏、下成了模组插件管理
plugin.yml / paper-plugin.yml 报错插件描述文件有问题包结构不对插件管理
NoSuchMethodError调用的方法核心没有插件与核心版本不匹配插件管理
Plugin is disabled插件被禁用初始化异常,看后续堆栈模组冲突

世界、内存与存储#

世界与存档#

关键词含义常见原因去哪
Failed to load level世界读不进去元数据损坏、降级打开崩溃与存档
level.dat世界元数据文件写一半、丢失崩溃与存档
Region file / is truncated区域文件损坏异常断电、存储写满崩溃与存档
Chunk file at ... is missing单个区块丢了未正常关服崩溃与存档
newer version世界由更高版本保存降级打开崩溃与存档

内存与 GC#

关键词含义常见原因去哪
OutOfMemoryError: Java heap space堆内存不足人数、视距、实体、泄漏内存与 CPU
OutOfMemoryError: Metaspace类元数据区不足模组/动态类过多内存与 CPU
GC overhead limit exceededGC 回收不出空间堆太小、对象都活着内存与 CPU
StackOverflowError调用栈溢出递归太深、模组互相调用内存与 CPU
Killed / SIGKILL进程被强制杀死内存压力、系统清理后台保活

权限与存储#

关键词含义常见原因去哪
Permission denied没有权限存储权限没给、目录不可写运行诊断
Read-only file system文件系统只读存储异常、SD 卡问题启动失败
No space left on device存储空间满了备份/日志占满备份策略
not whitelisted不在白名单没加人、白名单开关状态白名单与 OP
You do not have permission权限不足OP 等级或权限插件白名单与 OP
Failed to save / Could not save存档写入失败空间不足、文件被占用崩溃与存档

性能与通用关键词#

关键词含义常见原因去哪
Can't keep up服务端跟不上TPS 低、实体多TPS
Running behindtick 超时CPU、区块生成综合优化
Watchdog看门狗终止卡死的服务端死循环、长时间卡顿崩溃与存档
The server has not responded主线程长时间无响应同上TPS
Done (…s)!启动成功的标志—不用处理
Stopping server正常关服你或自动化点了停止不用处理

退出码与日志级别#

退出码:1、137、143 大概是什么意思#

崩溃报告的摘要里有一行「退出码: N」。它比日志关键词更“硬”,但也不是万能解释:同一个数字可能有多种原因,下面只是常见含义。

退出码大致含义能确定到什么程度
0进程自己正常结束确定。除非发生在启动 20 秒内,否则不算崩溃
1程序报错后退出,通常伴随 Java 异常确定是“出事了”,但具体原因必须看日志
137被 SIGKILL 强制杀死,常见于内存压力或系统清理应用会解释成“通常表示 SIGKILL”;137 更可能是被系统杀,不等于一定是 OOM
143收到 SIGTERM 后退出,常见于被要求停止大概率和停止流程有关,仅供参考
130被中断(类似 Ctrl+C)不确定,多数出现在手动干预时
为什么不能只凭退出码下结论

退出码只说明“进程怎么结束的”,不说明“为什么”。137 可能是低内存杀手,也可能是厂商省电策略;1 可能是 Java 版本错,也可能是模组崩了。正确的顺序是:先看退出码定方向,再看日志定原因。

日志级别:哪些是噪音,可以直接忽略#

一行日志长这样:[12:34:56] [Server thread/INFO]: 内容。方括号里第二段是级别。

级别意思要不要管
INFO正常信息不用管,绝大多数行都是它
WARN警告,功能还能跑反复刷同一条时才管
ERROR出错了要管,尤其是重复出现的那种
FATAL致命错误,通常紧跟退出一定要管

可以先放着不管的几类:

  • 大量 INFO 加载信息,比如注册方块、加载进度;

  • Can't keep up! Is the server overloaded? 偶尔出现一次——掉刻但没崩,观察即可;

  • Unknown recipe / Ignoring advancement 这类数据包小问题;

  • 启动时出现一次 ClassNotFoundException,但服务端最后照样 Done,可能是可选依赖。

判断标准就一句:有 Done、能连上、没有反复刷 ERROR,就先不动。

搜不到怎么办:四个动作#

  1. 复制出去再搜:终端点「复制当前日志」,粘到备忘录或发到电脑上,用搜索功能找关键词。

  2. 搜英文那半句:开了日志汉化,一行会显示成「中文摘要 + 原文」。中文摘要是给人看的,搜索永远搜英文那半句。

  3. 去文件里翻:完整日志在服务端目录的 logs/latest.log,用「文件」页的文本编辑器打开,或通过 FTP 拉到电脑上看。目录结构见 服务器目录。

  4. 按时间点缩小:只发生在启动时?进人时?跑图时?定时任务触发时?时间点能把范围砍掉一大半。

还是找不到,就按这个格式去问人,比截图有效得多:

文本
Minexa 版本:1.5.0
服务端:Paper 1.21.1
Java:Termux Java 21
现象:启动 10 秒后退出 / 卡在 Preparing level
最近改了什么:装了 XX 插件
日志:(粘贴含 Caused by 的那一段)
别复制整段堆栈去搜

几十行 at net.minecraft... 对搜索没有帮助,还会把真正的那一行埋掉。搜异常类型和消息,命中率高得多。

上机自查
  • 你能从终端里指出异常的第一行(java.lang.XxxException: ...)。

  • 你找到了最后一段 Caused by:,并说出它属于哪一类(Java / 网络 / 模组 / 世界 / 内存)。

  • 「更多 → 崩溃报告」里的「退出码」你能读到具体数字,不是空。

  • 你已经用「复制当前日志」把日志复制到能搜索的地方。

  • 服务端最后出现了 Done (…s)!,或者你确认它没有出现。

下一步#

读到这儿了,给你点个赞。如果这页内容帮你解决了问题,说明说明书的方向是对的;如果发现错误、过时信息或看不懂的地方,欢迎到 GitHub Issues 告诉我们。

⚡ 回到极速开服 📖 查术语表