简介 

        将源代码转换成二进制执行代码的过程叫“编译”,那么反编译就是将二进制执行代码转换成源代码。

        在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-简单好用 - 简书​