我下载了一个可执行的 .jar
文件并使用了 Java Decompiler提取来源。我将它们导入到 Eclipse 中,它显示了一些编译错误,例如错误的类型或对不可见方法的调用。因此,我无法在不修复所有内容的情况下运行该项目。
.jar
怎么可能在反编译器明明有逻辑错误的情况下还能正常运行呢?这是否与编译器级别较旧有关(我使用 1.8,而它最初是使用 1.6 或 1.7 编译的)?兼容性不是保持了吗?反编译器出错了吗?
最佳答案
How is it possible for the .jar file to function properly even though the decompiler clearly shows that there are logical errors?
.jar 文件中的编译类由字节码组成,而不是Java 源代码。没有从字节码到 Java 代码的单一转换。字节码可能格式正确,但不同的反编译器可能会产生不同的结果,而且结果并不总是有效的。
Did the decompiler make mistakes?
可能吧。它发生了。在编写了一个 Java 反编译器之后,我可以告诉你这一点都不简单。
关于java - .jar文件在反编译时有编译错误但运行正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24365698/