簡體   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