Jar包反编译工具 fernflower
当需要处理无源代码的久远jar包,获取其java源码时需要反编译工具的支持。
本文介绍IDEA自带的工具 [java-decompiler].
以反编译 logback-core-1.1.11.jar 为例,jar包位于 ~/jd
目录。
该组件是 IDEA 采用的反编译工具,在IDEA打开class文件时,就是通过该组件的反编译能力。
[java-decompiler] 是IDEA中的插件名称,实际上来源于 [fernflower] 工具。
在Mac下,java-decompiler.jar 位于 /Applications/IntelliJ IDEA.app/Contents/plugins/java-decompiler/lib
,执行以下命令:
1 | cd /Applications/IntelliJ\ IDEA.app/Contents/plugins/java-decompiler/lib/; |
命令格式为:java -jar java-decompiler.jar [-<option>=<value>]* [<source>]+ <destination>
- source 表示jar包所在目录,可以填写单个jar包,也可以填写一个目录(将解压目录下所有jar包)
- destination 表示反编译的java源码生成目录
执行命令后,将在~/jd/src
下生成 logback-core-1.1.11.jar 文件,这个jar包就是源文件,解压该jar包即可。反编译后效果如下,格式非常友好。1
unzip ~/jd/src/logback-core-1.1.11.jar;