是否可以反编译 Java 应用程序并使用反编译代码对其进行调试?
我更感兴趣的是使用反编译代码进行调试的能力,而不是反编译本身(这很简单)。
最佳答案
这确实是可能的,正如许多其他人已经指出的那样。
如果您只想反编译一个 JAR 并通过直接运行它们来调试反编译的类(即使用它们作为源),有很多反编译器可以很好地为您服务。
如果您打算调试应用程序中使用的 JAR,请在选择反编译器时注意适当的源代码行号对齐功能。看看例如 this question .您最终可以得到这样的反编译代码:
Line X /* Line Y */ int x = y
Line Y (anything can be here, it could even not exist)
X 和 Y 的值完全不同。这意味着反编译的 .java 文件中的 X 行对应于编译代码的 Y 行。调试 jar 时,您必须在源文件中的第 Y 行 放置一个断点以停在那里。调试起来可能会很烦人。有些反编译器会根据行号对齐源文件中的反编译代码。
Line X /* Line X */ int x = y
我用过JD-Eclipse Realign在 Eclipse 上取得成功。相信我,使用源行对齐调试反编译代码确实有所不同。
关于java - 是否可以反编译和调试 Java 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19154893/