没有 META-INF 文件夹,Minecraft 如何运行?
How is Minecraft able to function without a META-INF folder?
我真的不明白这是怎么回事。我现在正在尝试构建 .jar
。它由两个类组成:Test.class
和Sayer.class
。如果我直接访问 Test.class
或正确打包 Test.jar
,它工作得很好,但我可以执行 jar 的唯一方法是用清单 (jar cfm Test.jar manifest Test.class Sayer.class
) 打包它.
如果我不这样做,我在尝试 运行 罐子时会收到错误消息:Error: Invalid or corrupt jarfile Test.jar
。如果我构建 "good" jar 并删除 META-INF/
也会发生这种情况
这本身就很有意义。毕竟,您需要某种方式告诉 Java 在哪里寻找入口点...对吗?但是你有 Minecraft 的 modding 社区,它通常建议删除 META-INF
以使给定的 mod 工作。
但是,如果没有 META-INF
文件夹,Minecraft 如何运行?根据我的实验,这甚至 不可能 。这个 corrupt minecraft.jar
不应该像它损坏我的 Test.jar
一样吗?
由于 MineCraft 运行 来自启动器,启动器本身可以将适当的启动 class 直接传递给 Java,而不需要 META-INF
文件夹。
我真的不明白这是怎么回事。我现在正在尝试构建 .jar
。它由两个类组成:Test.class
和Sayer.class
。如果我直接访问 Test.class
或正确打包 Test.jar
,它工作得很好,但我可以执行 jar 的唯一方法是用清单 (jar cfm Test.jar manifest Test.class Sayer.class
) 打包它.
如果我不这样做,我在尝试 运行 罐子时会收到错误消息:Error: Invalid or corrupt jarfile Test.jar
。如果我构建 "good" jar 并删除 META-INF/
这本身就很有意义。毕竟,您需要某种方式告诉 Java 在哪里寻找入口点...对吗?但是你有 Minecraft 的 modding 社区,它通常建议删除 META-INF
以使给定的 mod 工作。
但是,如果没有 META-INF
文件夹,Minecraft 如何运行?根据我的实验,这甚至 不可能 。这个 corrupt minecraft.jar
不应该像它损坏我的 Test.jar
一样吗?
由于 MineCraft 运行 来自启动器,启动器本身可以将适当的启动 class 直接传递给 Java,而不需要 META-INF
文件夹。