JAVA反编译工具是一种可以将已编译的JAVA程序反向转换成可读的源代码的工具。这样可以帮助开发人员了解已有的JAVA程序的实现逻辑,进行代码分析,以及进行修改和优化等工作。今天就给大家介绍几种反编译工具。
源码如下所示:
public class XFTest {
public static void main(String[] args) {
String str = "a";
switch (str) {
case "a":
System.out.println("a");
break;
case "b":
System.out.println("b");
break;
default:
System.out.println("c");
break;
}
}
}
jmap
javap是jdk自带的一个工具,可以对代码反编译,也可以查看java编译器生成的字节码。javap和其他两个反编译工具最大的区别是他生成的文件并不是java文件,也不像其他两个工具生成代码那样更容易理解。拿一段简单的代码举例,如我们想分析Java 7中的switch是如何支持String的,我们先有以下可以编译通过的源代码:
javap -c XFTest.class
cfr
官网:传送
java -jar cfr-0.152.jar XFTest.class
jd-gui
官网:传送
jad是一个比较不错的反编译工具,只要下载一个执行工具,就可以实现对class文件的反编译了。还是上面的源代码,使用jad反编译后内容如下:
下载地址:
jadx-gui
官网:传送
直接打开class文件即可
下载地址:
Beyond Compare
官网:传送
Beyond Compare是一款强大的比对工具,日常版本管理经常用到。但其自带的支持格式并不包含Java编译后的class,这时我们就需要下载导入插件去支持该格式了
插件下载地址:
插件配置:工具—》导入设置—》选择下载好的.bcpkg结尾的文件,导入即可
打赏
当前共有 2 条评论
我知道的另外几种: 1.jad.exe; 2.Beyound Compare 工具里的反编译插件BCFormats.bcpkg; 3.luyten.exe;
第一种和第三种,好像已经停更了。
我知道的另外几种: 1.jad.exe; 2.Beyound Compare 工具里的反编译插件BCFormats.bcpkg; 3.luyten.exe;