反编译代码与原始代码不同

decompiled code is different from original code

我使用 jd-gui 反编译了一个 .jar 文件并检查了代码,我发现它与原始 .java 文件不同。

为什么会这样?

此外,反编译后的代码在语法上似乎是错误的(大括号在哪里?)

不可能通过反编译得到原始代码,因为不同的代码可能导致相同的java字节代码语句。但是,您将获得一个等效版本,它执行与原始版本完全相同的操作。

反编译代码总是试图做与源代码相同的事情,但由于编译器的优化而以不同的方式编写。他们是一些比其他更好的反编译器,检查 article