Jad实际上是一个很好的反汇编工具,在命令行中使用。 Jad不仅限于IDEA,在eclipse下也有插件。 在此记录Jad IDEA下的配置。
要补充的是,在windows上不要将Jad解压缩到有空格的路径中。 反编译失败。 安装完成后,必须设置jad.exe的路径。 jad有智能提示。
测试一下Jad的反汇编效果吧。
源代码:
packagecom.hankcs.strings; //: strings/concatenation.Java
公共类契约
{
publicstaticvoidmain (string [ ] args ) )。
{
Stringmango='mango ';
Strings='abc' mango 'def' 47;
system.out.println(s;
}
(}/*Output:
abcmangodef47
*///:~
先编译后反编译的结果:
/* decompiledthroughintellijad * /
//decompiledbyjadv1.5. 8g.copyright 2001 pavelkouznetsov。
//jad home page :http://www.KP dus.com/jad.html
//decompiler options 3360 pack fields (3) packimports(3)3) splitstr (64 ) radix ) 10 ) Lradix ) 10 ) ) )
//source filename 3360 concatenation.Java
packagecom.hankcs.strings;
公共类契约
{
publicConcatenation (
{
}
publicstaticvoidmain (string args [ ] ) ) )。
{
Stringmango='mango ';
strings=(newstringbuilder () ).append (append (mango ).append (def ).append (47 ).toString ) ) )
system.out.println(s;
}
}
反编译的结果与原始代码大部分相同,但在编译时编译器会将String替换为更高性能的StringBuilder。 从反编译的代码中可能可以看到Java编译器的优化效果。