Java Jad 反编译class文件

本文介绍了如何下载和配置Jad反编译器,提供详细的步骤和使用示例,包括命令行操作,如反编译.class文件、指定输出格式等,以及注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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包,直接解压了再反编译吧(这个方法很显然,我实在不好意思写出来)。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

怪 咖@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值