最近在反编译Java文件发现jd-gui等已经不够正常使用,经常会反编译缺少内容或者编译不正常。
在网上找到两个很好的反编译工具Procyon与CFR,不仅小巧而且使用很便捷。命令行就能够完成操作,不用安装。

使用CFR进行反编译

1、将需要反编译的jar包放与cfr-0.144.jar放一起;
2、进入cmd命令编辑页面;
3、用cd命令进入jar包所在路径;
3、使用命令java -jar命令进行反编译;
**

相关命令介绍

**

```bash
java -jar         反编译命令
cfr-0.144.jar       反编译工具jar包
commons-lang3-3.2.jar  需要反编译的jar包
--outputdir       反编译的输出路径
./           代表当前路径
d      代表在当前目录新建一个名为d的文件夹存入反编译之后的文件
D:            代表D盘根目录

命令例子

生成字节码文件
命令行输入 javac XXX.java
对刚刚的代码进行反编译
命令行输入java -jar cfr-0.147.jar XXX.class
CFR有很多参数
可以使用java -jar cfr-0.147.jar --help 查看

使用Procyon进行反编译

本来是使用的jad 挺好用的, 但是奈何不支持jdk1.8 , 所以只能更换了, 这里推荐使用 Procyon-Decompiler

工具的官方下载网站是:

https://bitbucket.org/mstrobel/procyon/downloads/

国内的环境下载不下来, 最后我费了很多事才下载下来, 所以我放在网盘了,

我直接下载了最新版的, procyon-decompiler-0.5.36.jar

链接:https://pan.baidu.com/s/19KL3bFpYVbsEEtsB2hTJgw
提取码:t8e7

如果你只是反编译一个java的class文件, 可以运行以下:

下载jar包,本机命令行运行

java -jar C:\Downloads\procyon-decompiler-0.5.36.jar  Demo.class

会把反编译的源码显示到控制台.

如果想保存源代码

java -jar C:\Downloads\procyon-decompiler-0.5.36.jar  Demo.class -o D:

还有如果你想编译jar 包

公式:java -jar procyon-decompiler的绝对路径 -jar 想反编译文件的绝对路径 -o 输出文件夹的绝对路径

这样你就会看到*.jar文件反编译成一堆的java文件啦

下面的截图是我自己反编译的.

第一个反编译了一个静态内部类, 直接保存到当前文件夹去, 这个工具有个好处, 它会自动创建文件夹, 把文件保存到对应的包中去.

第二个反编译直接输出到当前控制台.

Android 反编译jar包 反编译jar包工具_反编译