简介
将源代码转换成二进制执行代码的过程叫“编译”,那么反编译就是将二进制执行代码转换成源代码。
在java开发里,源代码是.java文件,然后经过编译后生成计算机识别的.class文件,但是.class文件是计算机识别的我们一般看不明白,因此需要反编译变成我们能读懂的源码,但是反编译后的代码并不是和源码一模一样,有些会被优化掉,是极度接近的。
luyten
本软件反编译出来的源码和源代码一致。
JD-GUI
官网
官网:https://github.com/java-decompiler
官方下载:https://github.com/java-decompiler/jd-gui/releases
简介
说明
JD-GUI 是一个用 C++ 开发的 Java 反编译工具,由 Pavel Kouznetsov开发,支持Windows、Linux和苹果Mac Os三个平台。而且提供了Eclipse平台下的插件JD-Eclipse。JD-GUI不需要安装,直接点击运行,可以反编译jar,class文件,可将整个jar包直接保存为*.src.zip源代码包,反编译迅速,错误率极少。
JD分为JD-GUI、JD-Eclipse/JD-Intellij两种运行方式,JD-GUI是以单独的程序的方式运行,JD-Eclipse/JD-Intellji(Java Decompiler IntelliJ Plugin)则是以一个Eclipse/IDEA插件的方式运行。
缺点
有时候反编译出来的代码和源代码不一样。建议使用“luyten”。
使用
1.打开jar
file=> open file=> 选择jar
2.配置生成的java不包含行号、元信息
Help=> Preferences=> Source Saver=> Class File=> 取消勾选“Write original line numbers”和“Write metadata”
3.生成源码压缩包
file=> save all sources=> 此时会生成 xxx.jar.src.zip
其他网址
Java反编译工具-JD-GUI-简单好用 - 简书