Jad(JAva Decompiler)是一个Java的反编译器,可以通过命令行把Java的class文件反编译成源代码。
一、下载文件
下载地址:https://varaneckas.com/jad/
二、配置环境变量
下载好后可以放到JDK安装环境,当然这个可以随意。
配置环境变量:
配置环境变量的目的主要是让 Jad的命令 可以在电脑 任意文件位置 都能运行。
找到环境变量-》系统变量-》Path-》添加JAD路径
三、测试
打开cmd窗口,输入jad出现下面的代表安装成功。
四、使用示例
正常java项目在经过编译后会将.java文件编译成.class文件。而.class文件通过Jad反编译,可以编译成源码。.class文件一般存放于项目的target文件夹当中。
以这个class为例:
执行 jad 类名 命令

MultIdGeneratorEnum.jad就是编译后的jad源码。
这个是我的java文件。
这个是项目最终运行的源码。可以看到,其实java当中的Enum枚举,其实他也是一个类,只不过Java经过了处理,但是最终运行的时候,他会将Enum类换成普通的类。枚举的存在主要是让我们程序员编写代码更方便,可以省略很多代码。这也就是有时候在开发当中,经常会提倡使用枚举。
五、使用命令
[1] 反编译一个class文件:jad example.class,会生成example.jad,用文本编辑器打开就是java源代码
[2] 指定生成源代码的后缀名:jad -sjava example.class,生成example.java
[3] 改变生成的源代码的名称,可以先使用-p将反编译后的源代码输出到控制台窗口,然后使用重定向,输出到文件:jad -p example.class > myexample.java
[4] 把源代码文件输出到指定的目录:jad -dnewdir -sjava example.class,在newdir目录下生成example.java
[5] 把packages目录下的class文件全部反编译:jad -sjava packages/*.class
[6] 把packages目录以及子目录下的文件全部反编译:jad -sjava packages/**/*.class,不过你仍然会发现所有的源代码文件被放到了同一个文件中,没有按照class文件的包路径建立起路径
[7] 把packages目录以及子目录下的文件全部反编译并建立和java包一致的文件夹路径,可以使用-r命令:jad -r -sjava packages/**/*.class
[8] 当重复使用命令反编译时,Jad会提示“whether you want to overwrite it or not”,使用-o可以强制覆盖旧文件
[9] 还有其他的参数可以设置生成的源代码的格式,可以输入jad命令查看帮助,这里有个人做了简单的翻译:jad命令总结
[10] 当然,你会发现有些源文件头部有些注释信息,不用找了,jad没有参数可以去掉它,用别的办法吧。
最后,jad不能直接反编译jar包,直接解压了再反编译吧(这个方法很显然,我实在不好意思写出来)。
Jad反编译器:Java class文件转源码指南
本文介绍了如何下载和配置Jad反编译器,提供详细的步骤和使用示例,包括命令行操作,如反编译.class文件、指定输出格式等,以及注意事项。
6333

被折叠的 条评论
为什么被折叠?



