Minecraft MCP加载上的Java NullPointerException

Minecraft MCP加载上的Java NullPointerException,java,eclipse,nullpointerexception,minecraft,Java,Eclipse,Nullpointerexception,Minecraft,我制作了自己的Minecraft客户端(在Eclipse中运行良好),但一旦我将其导出为.jar文件,并将其与.json文件一起放入Minecraft versions文件夹,加载时它返回了一个错误 更新------------------------------------------ Exception in thread "main" java.lang.IncompatibleClassChangeError: Implementing class at java.lang.ClassL

我制作了自己的Minecraft客户端(在Eclipse中运行良好),但一旦我将其导出为.jar文件,并将其与.json文件一起放入Minecraft versions文件夹,加载时它返回了一个错误

更新------------------------------------------

Exception in thread "main" java.lang.IncompatibleClassChangeError: Implementing class
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at net.minecraft.client.main.Main.main(SourceFile:41)
Java HotSpot(TM) 64-Bit Server VM warning: Using incremental CMS is deprecated and will likely be removed in a future release

我按照指示成功导出了它,但是它返回了这个

是的,当然它在IDE中运行良好。 您是否注意到它在Libraries选项卡下有
1.8.jar
?这意味着Eclipse项目中的“客户机”正在使用
1.8.jar
中的一些文件(assets.*)。Eclipse中的客户端项目不是最初的Minecraft源代码。MCP脚本对其进行了一些修改,以允许您在Eclipse中正确启动Minecraft客户端。您必须从1.8.jar中复制大量内容,我确信Minecraft Launcher无法启动它,除非您修改导出的jar文件和*.json

如果您真的想拥有自己的Minecraft.jar,下面是正确的步骤。 完成对Minecraft的修改后,保存所有文件,然后关闭Eclipse。在包含eclipse目录的目录(文件夹)中,您应该调整
reobfousate.bat
reobfousate.sh
。如果您是Windows用户,请使用
.bat
版本;如果您是MacOS或Linux用户,请使用
.sh
。 运行文件后,您应该会在
reobf
目录中看到一些文件。目录中的文件是模糊文件,可以直接复制到Minecraft.jar。现在,使用WinRar或其他工具打开Minecraft.jar(1.8.jar)。将reobf目录中的所有文件复制到Minecraft.jar(如果文件存在,则替换)。完成这些步骤后,您就拥有了自己的Minecraft.jar

现在,您应该在Minecraft Launcher中创建自己的版本配置文件。(参考:)

在.minecraft/versions目录中,您应该放置自己的minecraft.jar。如果将其命名为
MyCustomMinecraft.jar
,则必须在.minecraft/versions中创建一个名为MyCustomMinecraft的新目录。现在,复制
MyCustomMinecraft.jar
并将其粘贴到
MyCustomMinecraft
目录中。然后,在versions/1.8目录中复制
1.8.json
,并将其粘贴到
MyCustomMinecraft
中。将
1.8.json
重命名为
MyCustomMinecraft.json
。用任何文本编辑器打开
MyCustomMinecraft.json
,在第2行,您应该看到
“id”:“1.8”,
。将其更改为
MyCustomMinecraft
。您的第2行应该看起来像
“id”:“MyCustomMinecraft”,
现在


打开地雷发射器。编辑配置文件按钮>使用版本:>您应该在列表中看到
release MyCustomMinecraft

看起来您正在通过apache commons从磁盘读取某些内容。此资源在eclipse之外可用吗?似乎存在对运行时不可用的文件(可能是配置/属性文件)的依赖关系。如果您确实不知道它试图读取的文件,您可以在Windows或Linux上的strace上尝试监视文件访问,并查找“未找到文件”错误。好的,谢谢,我要一杯look@Rup我如何找到一个文件未找到的错误?哦,很确定你是新手。您还需要删除META-INF目录(在JAR文件中)。别忘了投票;)那就是你的代码错误。
net.minecraft.client.minecraft
中的第41行是什么?它只是导入区域中的一个换行符我删除了所有换行符,但仍然有相同的错误。我想你说的是net.minecraft.client.minecraft.java
net.minecraft.client.minecraft
net.minecraft.client.minecraft.java=
net.minecraft.client.minecraft.class
。编辑你的问题。张贴整个代码。