You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

修改非开源Minecraft插件JAR包后重新打包遇主类错误求助

解决反编译修改Minecraft插件后打包的主类错误问题

问题根源

你遇到的Cannot find main class不是打包命令jar cvf本身的问题——这个命令仅负责打包文件,不会检查主类。大概率是你打包后误尝试用java -jar运行插件jar导致的,而Minecraft插件是由服务端加载的,根本不需要可执行主类。但如果打包的目录结构不对,也会导致服务端无法识别插件,下面是正确的打包步骤:

正确打包流程

  • 严格保留原文件结构
    反编译后的.class文件必须和原插件的包结构完全一致,比如原插件的类在me/myplugin/包下,那你的.class文件就得放在me/myplugin/目录里,不能直接丢根目录。同时必须保留原插件的plugin.yml(这是插件被服务端识别的核心配置,丢了肯定加载失败),还有其他资源文件(比如配置文件夹、语言文件等)也要原封不动保留。

  • 精准执行打包命令
    进入到所有插件文件的根目录(比如plugin.yml在当前目录,.class文件在./me/下),执行:

    jar cvf my-modified-plugin.jar ./me ./plugin.yml ./config
    

    这里只打包插件需要的内容,别用.打包所有文件,避免把IntelliJ的缓存、临时编译文件也打包进去,反而引发问题。

  • 保留原插件的MANIFEST(如果有特殊配置)
    有些插件的META-INF/MANIFEST.MF里有依赖声明或其他配置,你可以从原jar里导出这个文件:

    jar xf original-plugin.jar META-INF/MANIFEST.MF
    

    然后打包时指定这个MANIFEST:

    jar cvfm my-modified-plugin.jar META-INF/MANIFEST.MF ./me ./plugin.yml
    

验证方式

打包完别用java -jar测试,直接把jar扔到Minecraft服务端的plugins文件夹里,启动服务端看日志有没有加载成功的提示。如果服务端报错,先检查plugin.yml的格式是否正确,再确认包结构和原插件完全一致。

内容的提问来源于stack exchange,提问作者Colors

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 19:20:36