如何修复Paper服务器加载lobbyplugin.jar时的RuntimeException?
解决PaperMC中插件加载失败的RuntimeException(提示不是有效插件文件)
问题核心
开发的SpleefClicker插件在Paper 1.19.3服务器加载时失败,控制台核心报错:
java.lang.IllegalArgumentException: File 'plugins\lobbyplugin.jar' is not a valid plugin file, cannot load a plugin from it!
已确认plugin.yml存在且代码无语法错误,需要定位并修复加载失败问题。
排查与修复步骤
1. 核对plugin.yml的位置与语法
- 位置要求:确保
plugin.yml在JAR文件的根目录(用压缩工具打开JAR,直接可见该文件,而非嵌套在子文件夹中)。 - 必填字段检查:
plugin.yml必须包含以下核心字段,且内容与代码匹配:
注意:name: SpleefClicker main: com.gmail.AAAA.SpleefClicker.SpleefClicker # 与主类全路径完全一致 version: 1.0.0 api-version: 1.19 # 匹配服务器1.19.3版本main字段的类路径必须精确对应你的主类包结构,任何拼写错误都会导致加载失败。
2. 验证JAR文件的完整性
- 重新编译打包:可能是编译过程出错导致JAR损坏,用IDE(IntelliJ/Eclipse)重新执行打包操作,确保编译日志无报错。
- 检查文件损坏:尝试解压JAR文件,若解压失败则说明文件损坏,需重新生成。
- 统一文件名:插件JAR文件名
lobbyplugin.jar与插件名SpleefClicker不一致,建议将JAR重命名为SpleefClicker.jar,避免服务器加载时的识别混淆。
3. 确认兼容性配置
- API版本匹配:
plugin.yml中的api-version需与服务器版本对应(1.19.x版本设置为1.19即可),版本不匹配会触发加载验证失败。 - 依赖库一致性:代码中使用了
com.google.common.io,Paper服务器自带Guava库,编译时请勿自行引入外部Guava依赖,避免版本冲突。
4. 补全主类初始化逻辑(非加载失败原因,但影响功能)
主类实现了Listener但未注册事件,需在onEnable方法中添加事件注册代码,否则后续点击功能无法生效:
@Override public void onEnable() { getLogger().info("onEnable has been invoked!"); getServer().getPluginManager().registerEvents(this, this); // 注册事件监听器 }
总结
绝大多数此类加载失败问题源于plugin.yml的位置/语法错误,或JAR文件损坏。按上述步骤逐一排查,优先核对plugin.yml的核心配置与JAR结构。
内容的提问来源于stack exchange,提问作者Sigge
相关产品推荐
相关产品推荐

