我下载了一个可执行文件.jar
并使用Java Decompiler来提取源代码。我将它们导入Eclipse,它向我展示了一些编译错误,例如错误的类型或对隐形方法的调用。因此,如果不修复所有内容,我就无法运行项目。
即使反编译器清楚地显示存在逻辑错误,.jar
文件如何才能正常运行?是否与编译器级别较旧有关(我使用1.8,而它最初是使用1.6或1.7编译的)?虽然不兼容吗?反编译器是否犯了错误?
答案 0 :(得分:4)
即使反编译器清楚地显示存在逻辑错误,.jar文件如何才能正常运行?
.jar文件中的已编译类由字节码组成,而不是Java源。没有单一的字节码转换回Java代码。字节码可能格式正确,但不同的反编译器可能产生不同的结果,结果并不总是有效。
反编译器是否犯了错误?
可能。它发生了。编写了一个Java反编译器后,我可以告诉你它只是简单明了。