对比了多款反编译工具,还是觉得idea自带的fernflower好用,相比较之下java-decompiler无法反编译lambda表达式,而这个fernflower可以,所以在有lambda表达式的情况下,还是选择fernflower比较好。
这里上一个单独使用fernflower的说明。
下载
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工具解压就行