修改Minecraft mod中的.class文件

问题描述 投票:-1回答:1

我使用JD-Gui来反编译.class文件,这要归功于我在一个不相关的问题上找到的建议,我用Eclipse编辑了.java代码。

当我使用Eclipse的构建函数将其重新编译为.class文件时,问题就出现了。它不是用.class的所有代码创建一个.java,而是创建一个.class,用输出来替换每个函数,说明错误是什么。我想当你告诉编译器使用错误进行编译时,它会按原样使用代码,而不是用错误替换代码。

我想要做的就是修改.class文件,我似乎无法找到解决问题的方法。有没有办法实际编译代码而不是代码生成的错误?

java eclipse compiler-errors compilation minecraft
1个回答
0
投票

对于Minecraft modding,不建议手动反编译和修改.class文件!

您的偏好顺序选项:

  1. 找到mod的来源并分叉它。
  2. 请求mod作者为要更改的内容添加API。
  3. 在运行时修补mods代码。
  4. 使用BON2或MCP / ForgeGradle反编译mod(可能破坏它的许可证)以获得类似于原始反混淆源的源。

也就是说,如果你开始做4,你将需要找到它用来再次编译的所有库。

它创建一个.class,用一个输出来替换每个函数,说明错误是什么。我想当你告诉编译器使用错误进行编译时,它会按原样使用代码,而不是用错误替换代码。

这是预期的行为。编译错误主要用于hotswappable代码,因此您可以快速原型而不必担心源是100%可编译的,它不可能链接到它没有的依赖项。

是否有任何方法可以实际编译代码而不是替换为代码生成的错误?

直接修改字节码,或者按照上面的选项之一进行操作。

© www.soinside.com 2019 - 2024. All rights reserved.