【发布时间】:2014-02-26 11:18:11
【问题描述】:
在我最近的项目中,我们需要修改一些业务规则,但是我们没有源代码。
我拿了最新的生产部署jar文件并通过JD-gui打开它。通过使用选项保存所有资源,我可以获得反编译的 java 文件。现在我的问题是:
我看到反编译的 java 代码在每一行都有不必要的行 cmets。有什么办法可以避免吗?
如果我对某个文件进行了更改,然后再次编译代码并将 jar 发送到生产环境,是否会有任何隐藏的挑战?
【问题讨论】:
-
Java 反编译器生成的代码并不总是按原样编译。您最终可能会花费大量时间来修复编译错误。
-
如果只需要稍作修改就能使代码编译和工作,那你就认为自己很幸运。
-
反编译器的输出不仅不总是编译,而且即使它确实编译也不一定正确。重新部署反编译器生成的代码时要格外小心。在几种情况下,JD-GUI 可能会产生不正确的代码。其他反编译器可能更好,但相信它们仍然是自找麻烦。如果你必须走这条路,至少比较两个或三个像样的反编译器的输出,并确保结果是一致的。我推荐 Procyon、CFR 和 Krakatau。
标签: java decompiling