使用反编译的java代码

使用反编译的java代码,java,decompiling,Java,Decompiling,在我最近的项目中,我们需要修改一些业务规则,但我们没有源代码 我获取了最新的生产部署jar文件,并通过JDGUI打开了它。通过使用“保存所有资源”选项,我可以获得反编译的java文件。现在我的问题是: 我看到反编译的java代码在每一行上都有不必要的行注释。有没有办法避免它们 如果我对某个文件进行更改,然后再次编译代码并将jar发送到生产环境中,会有任何隐藏的挑战吗 1.这取决于您使用的工具,大多数情况下您必须自己清理。 2.某些jar文件包含MD5校验和,您必须删除或更新校验和才能使新的jar

在我最近的项目中,我们需要修改一些业务规则,但我们没有源代码

我获取了最新的生产部署jar文件,并通过JDGUI打开了它。通过使用“保存所有资源”选项,我可以获得反编译的java文件。现在我的问题是:

  • 我看到反编译的java代码在每一行上都有不必要的行注释。有没有办法避免它们

  • 如果我对某个文件进行更改,然后再次编译代码并将jar发送到生产环境中,会有任何隐藏的挑战吗


  • 1.这取决于您使用的工具,大多数情况下您必须自己清理。

    2.某些jar文件包含MD5校验和,您必须删除或更新校验和才能使新的jar文件正常工作。

    Java反编译程序生成的代码并不总是按原样编译。您可能需要花费大量的时间来修复编译错误。如果只需要稍加修改就能编译代码并工作,那就觉得自己是幸运的。反编译器不仅输出不总是编译,而且即使编译也不一定是正确的。重新部署反编译器生成的代码时要格外小心。有几种情况下,JD-GUI可能会产生不正确的代码。其他反编译程序可能更好,但信任它们仍然会带来麻烦。如果必须这样做,至少比较两个或三个合适的反编译器的输出,确保结果一致。我推荐Procyon、CFR和Krakatau。3)反编译不会产生与您开始时完全相同的代码。在我使用反编译器(不是你引用的那种)的少数情况下,我看到过这样的情况:在重新编译之前,我必须手动重写一些代码,我不确定我是否希望在不进行完整代码审查的情况下,将业务押在成功的往返上。同意。。变量名中可能会有一些变形之类的..但到目前为止,我的反编译代码能够编译..没有任何错误..我发现我只需要更改一个文件..s我正在考虑专门更改该文件..编译它,然后替换原始jar中的单个文件。。。我希望它能奏效。。