繁体   English   中英

Minecraft启动器:无法获取需要帮助的主要方法

[英]Minecraft Launcher: Cannot get main method need assistance

我正在尝试为Minecraft 1.7.10创建一个简单的启动器。 但是,当我尝试从net.minecraft.client.main.Main获取main方法时,出现错误:

java.lang.ClassNotFoundException:joptsimple / OptionSpec。

我尝试研究其他启动器中的代码,以了解它们如何解决此问题,但我看不出有任何区别。

public Method getMainMethod() throws NoSuchMethodException, SecurityException, 
                                    ClassNotFoundException, IOException, 
                                    InstantiationException, IllegalAccessException  
{            
    return new URLClassLoader(new URL[] {new URL("file:///" + 
                                    MinecraftUtil.getBinFolder() + "/minecraft.jar")}, 
                                    URLClassLoader.getSystemClassLoader().getParent())
                                    .loadClass("net.minecraft.client.main.Main")
                                    .getMethod("main", String[].class);
}

这应该是从minecraft.jar获取main方法并允许我调用它,但是如果我什至尝试加载该类,它也会吐出joptsimple / optionspec错误。

您还需要在该类加载器中包含Minecraft需要的所有库,如果您查看典型的Minecraft安装,您会注意到\\libraries文件夹中有很多子目录以及其他.jar末尾,并且您需要加载所有需要的。

Minecraft使用配置文件来跟踪所需的库,应该有versions文件夹,每个版本都包含该版本的.jar和.json文件以及您需要加载的所有库:

"libraries": [
    {
        "name": "com.mojang:patchy:1.1",
        "downloads": {
            "artifact": {
                "size": 15817,
                "sha1": "aef610b34a1be37fa851825f12372b78424d8903",
                "path": "com/mojang/patchy/1.1/patchy-1.1.jar", 
                "url": "https://libraries.minecraft.net/com/mojang/patchy/1.1/patchy-1.1.jar"
            }
        }
    },

而且,您可以在该库目录中找到.jar文件的大小,sha1校验和,路径,如果缺少该文件,则可以下载链接。 因此,您可以实现启动器,该启动器将下载缺少的库。

您可以使用这些现有的配置文件,也可以仅创建自己的系统来跟踪需要包含在该类加载器中的库。
请注意,配置文件还包括传递给Minecraft主方法以运行游戏所需的所有参数-您也需要这些参数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM