java - 使用依赖项反编译

标签 java bukkit decompiler

我需要反编译的项目使用的 API 是代码的主要部分。我知道/有这个 API,有什么方法可以将它提供给反编译器以便使用 API 中的对象吗?

示例(使用 CFR 反编译器):

Player sender = cmd.getSender();
Player target = cmd.getTarget();
World world = cmd.getWorld();
world.teleport(sender, target);

变成:

Object obj1 = cmd.getSender();
Object obj2= cmd.getTarget();
Object obj3 = cmd.getWorld();
// cast must be added manually or error
(World) obj3.teleport(obj1, obj2);

考虑到变量的声明和使用可能相隔一百行,并且一个方法可能使用多达 20 个不同的变量,这是非常烦人的。我知道您无法对名称做任何事情,但了解类型会非常有帮助。

有办法解决这个问题吗? (我没有反编译器的经验,所以我可能只是愚蠢)

最佳答案

没有任何反编译器能够始终反编译而不会出现任何错误。有时反编译得很好,有时则不然。最好的方法是拥有多个反编译器并相互使用,以减少反编译源中的错误。
如果你使用 Eclipse 我会建议这个 plugin .
或者您可以尝试这个单独的工具 Jar Explorer 。有树反编译器。这样您就可以轻松地与任何人一起玩。

关于java - 使用依赖项反编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56352983/

相关文章:

java - 具有相同名称和参数类名称的函数(但参数类不同)

java - 反编译 Apk 文件后,我得到数字而不是常量。如何获取这些数字的字符串值?

java - 上传文件的 fileUpload 和 primefaces null 值

java - 如何分发在 Eclipse 中构建的 java 项目?

java - 在java中返回查询结果集的正确方法

java - 如何使用末尾带点的键?

javascript - Java Nashorn - ClassNotFoundException - Java.type()

c - 将 ARM asm 反编译回 C

java - 您可以反编译任何 .jar,这不是很奇怪\不安全吗?

java - 将 java.lang.Boolean 转换为 Scala boolean 值