整合包无法启动或启动时卡住
当模组服务器在启动过程中卡住或启动时崩溃时,几乎总是模组冲突。以下是如何找到罪魁祸首并让服务器重新运行的方法。
当模组服务器在启动过程中卡住——控制台安静下来,从未达到“Done”——或在启动时崩溃时,几乎总是模组冲突或损坏/过时的模组,而不是服务器本身的问题。以下是如何找到罪魁祸首并让服务器重新运行的方法。
卡住与崩溃——区分它们
- 崩溃: 控制台打印错误,进程停止。你会在
crash-reports/下看到堆栈跟踪和通常的崩溃报告。 - 卡住(挂起): 服务器看起来“已启动”,但从未完成加载,并且没有人可以加入。日志在初始化中途停止。这通常意味着两个模组在启动期间相互死锁。
两者都以相同的方式诊断:阅读日志并隔离有问题的模组。
1. 从头到尾阅读日志
打开控制台,重启,然后从头开始阅读。对于 Forge/NeoForge,最有用的文件是 logs/fml-server-latest.log(在文件管理器中打开它)。搜索首次出现的以下内容:
ERROR FATAL Caused by: LoadingFailedException NoClassDefFound
第一个报错的模组通常是根本原因。之后列出的“因为依赖项 X 报错而报错”的模组只是下游噪音——忽略它们,专注于第一个。
2. 留意相互冲突的性能模组
性能模组(Redirector、Canary、ModernFix、Rubidium、Embeddium等)深入修补了游戏的内部机制,过时的版本可能会在启动时相互死锁——经典的“服务器看起来已启动但在初始化中途卡住”症状。如果你的整合包在更新后卡住,或者你正在运行几个月前的模组版本,这些都是主要嫌疑。
3. 禁用可疑模组
你不必删除任何东西——只需将其从加载路径中移除:
- 在文件管理器中,打开
mods/文件夹。 - 将可疑的 jar 文件从
something.jar重命名为something.jar.disabled。(.disabled扩展名会阻止它加载,并且以后重新启用也很简单。) - 重启并观察控制台。
如果它现在能够越过卡住/崩溃点启动,你就找到了它。如果不是,重新启用它并尝试下一个可疑模组。一次只更改一个模组,这样你就知道是哪个模组起了作用。
4. 在重新开始之前保护你的世界
如果世界损坏(或者你想测试干净启动),不要删除它——将其存档:
- 在文件管理器中,将
world重命名为world-broken-<date>.old。 - 重启。服务器会生成一个全新的世界并干净启动。
- 如果你以后想找回旧世界,它仍然在那里。
注意——大型整合包的世界生成速度很慢。 重新开始后,一个大型模组整合包可能需要 5-15 分钟才能完成区块生成,然后才达到“Done”——像 MineColonies 或 Alex's Mobs 这样在启动时扫描生物群系的模组是正常的。如果 CPU 正在进行实际工作(而不是固定在 0%),请给它一些时间,然后再假设它卡住了。
5. 正确修复:更新模组
禁用性能模组会让你损失一些 FPS,但不会破坏游戏玩法,所以这是一个很好的权宜之计。真正的修复通常是更新冲突的模组——大多数都发布了解决这些冲突的错误修复版本。获取适用于你的 Minecraft/加载器版本的新版本,将它们放入 mods/(替换旧的 jar 文件),然后重新启用你禁用的任何模组。
常见模式
- 在特定模组记录后立即卡住: 该模组(或下一个要初始化的模组)正在死锁——禁用它。
Missing or unsupported mandatory dependencies: 缺少所需的库模组或版本不正确——添加/修复它。Incompatible mod set!/ 版本不匹配: 模组是为与你的整合包不同的 Minecraft 或加载器版本构建的。- 仅在玩家加入时崩溃,而不是在启动时崩溃: 这通常是客户端/服务器模组列表不匹配——请参阅 安装整合包。
仍然卡住?
提交支持工单,附上 fml-server-latest.log 中的第一个错误(或崩溃报告的链接)。我们可以直接深入研究节点上的模组集,为你禁用冲突的模组,并放入更新版本,以便你看到它正常工作。