Minecraft MCP加载上的Java NullPointerException
我制作了自己的Minecraft客户端(在Eclipse中运行良好),但一旦我将其导出为.jar文件,并将其与.json文件一起放入Minecraft versions文件夹,加载时它返回了一个错误 更新------------------------------------------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
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.javanet.minecraft.client.minecraft
net.minecraft.client.minecraft.java=net.minecraft.client.minecraft.class
。编辑你的问题。张贴整个代码。