java反编译jar包

工具1:jad

下载地址:https://varaneckas.com/jad/

比如我现在有个jar包,struts2-core-2.3.16.3.jar

当前所在目录为D:/mylib,在当前目录启动cmd,执行

jad -o -r -ff -dtest -sjava struts2-core-2.3.16.3/**/*.class

-o表示反编译后遇到同名文件直接覆盖(默认会询问)

-r表示反编译后的文件,保持原有的目录结构

-ff表示反编译的class文件里字段位于方法前面(默认字段位于方法后面)

-d表示反编译内容的输出目录

-s表示反编译生成的文件的后缀

**表示匹配struts2-core-2.3.16.3目录树下的所有以class为后缀的文件

不足是:里面也有一些编译不出来的部分,对于比较简单的单文件没有问题。

参考链接:https://blog.csdn.net/huangdengji/article/details/84834789

 

工具2:fernflower(推荐)

jad需要将jar解压后,然后再反编译;fernflower是直接指定要编译的jar位置,然后直接输出反编译后的jar包

下载地址:http://the.bytecode.club/fernflower.jar

以前面提到的情况为例

java -jar D:/short/jar/fernflower.jar struts2-core-2.3.16.3.jar test/
rem 1.如果fernflower.jar和struts2-core-2.3.16.3.jar在同一目录下,就写成
rem java -jar fernflower.jar struts2-core-2.3.16.3.jar test/
rem 2.test目录可以不用事先创建

参考链接:https://blog.csdn.net/zz121822/article/details/79816068

https://github.com/fesh0r/fernflower

 

http://www.javadecompilers.com/ 在线反编译jar包

你可能感兴趣的:(java,反编译)