对比了多款反编译工具,还是觉得idea自带的fernflower好用,相比较之下java-decompiler无法反编译lambda表达式,而这个fernflower可以,所以在有lambda表达式的情况下,还是选择fernflower比较好。

这里上一个单独使用fernflower的说明。

GitHub - fesh0r/fernflower: Unofficial mirror of FernFlower Java decompiler (All pulls should be submitted upstream)

下载

git clone https://github.com/fesh0r/fernflower.git

cd fernflower

发现是gradle的,看下支持的命令

./gradlew tasks

发现支持jar

进行编译

./gradlew jar 或 gradle jar

编译成功后/build/libs目录下就会生成fernflower.jar

进行反编译

java -jar fernflower.jar ./xxx.jar ./source

./xxx.jar 是压缩的class文件zip包

./source 是反编译java文件输出目录

注:输出到source目录中的还是一个jar包,但是这个包里放的都是.java源文件了,直接用unzip工具解压就行