1

我是 Java 新手,我正在尝试理解一些东西。我设法为本地设备获取了一个 .jar 文件,以便与我的笔记本电脑进行通信。它工作得很好,但我想做一个升级并挖掘代码并更改一些细节。我在 .jar 文件上使用了 Java Decompiler,并设法查看了类文件。但是,每当我将它们反编译成源代码时,我的 IDE 中就会出现错误,并且我无法构建它们。究竟发生了什么?如果它在 .jar 中运行良好,为什么会产生错误?

4

2 回答 2

1

编译是一个有损过程,因此反编译始终是“尽力而为”的努力。Java 字节码异常高级,因此 Java 反编译相对于其他语言来说相对容易,但它仍然永远不会 100% 完成。因此,在重新编译反编译的源代码时,您应该不会对看到错误感到惊讶。

如果您想直接使用字节码,我建议您使用Krakatau disassembler 和 assembler。反汇编程序不是反编译为 Java 源代码,而是将字节码转换为人类可读的汇编格式,该格式专门设计用于无损地与字节码进行转换。但是,它需要对低级 Java 字节码有很好的理解才能使用。

于 2019-09-20T02:13:31.050 回答
0

完全同意锑。没有反编译器总是可以反编译而没有任何错误。有时它可以很好地反编译,有时则不行。
最好的方法是拥有几个反编译器并相互使用它们以减少反编译源中的错误。
如果您使用 Eclipse,我建议https://marketplace.eclipse.org/content/enhanced-class-decompiler
如果您使用 IntelliJ,请尝试使用这个反编译器Jar Explorer

于 2019-11-19T14:58:20.107 回答