gpt4 book ai didi

java - 我的世界启动器 : Cannot get main method need assistance

转载 作者:行者123 更新时间:2023-12-02 01:36:04 25 4
gpt4 key购买 nike

我正在尝试为 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 主方法以运行游戏的所有参数 - 您也需要这些。

关于java - 我的世界启动器 : Cannot get main method need assistance,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57518070/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com