- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试为 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/
我是一名优秀的程序员,十分优秀!