Java Jad 反编译class文件

Java Jad 反编译class文件Jad JAvaDecompil 是一个 Java 的反编译器 可以通过命令行把 Java 的 class 文件反编译成源代码

Jad(JAva Decompiler)是一个Java的反编译器,可以通过命令行把Java的class文件反编译成源代码

一、下载文件

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

Java Jad 反编译class文件

二、配置环境变量

下载好后可以放到JDK安装环境,当然这个可以随意。

Java Jad 反编译class文件

配置环境变量:

配置环境变量的目的主要是让 Jad的命令 可以在电脑 任意文件位置 都能运行。

找到环境变量-》系统变量-》Path-》添加JAD路径

Java Jad 反编译class文件

三、测试

打开cmd窗口,输入jad出现下面的代表安装成功。

Java Jad 反编译class文件

四、使用示例

正常java项目在经过编译后会将.java文件编译成.class文件。而.class文件通过Jad反编译,可以编译成源码。.class文件一般存放于项目的target文件夹当中。

以这个class为例:

Java Jad 反编译class文件

执行 jad 类名 命令
Java Jad 反编译class文件

MultIdGeneratorEnum.jad就是编译后的jad源码。

Java Jad 反编译class文件

这个是我的java文件。

Java Jad 反编译class文件

这个是项目最终运行的源码。可以看到,其实java当中的Enum枚举,其实他也是一个类,只不过Java经过了处理,但是最终运行的时候,他会将Enum类换成普通的类。枚举的存在主要是让我们程序员编写代码更方便,可以省略很多代码。这也就是有时候在开发当中,经常会提倡使用枚举。

Java Jad 反编译class文件

五、使用命令

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/223579.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午1:52
下一篇 2026年3月17日 下午1:53


相关推荐

  • YOLOv5训练自己的数据集(超详细完整版)[通俗易懂]

    YOLOv5训练自己的数据集(超详细完整版)[通俗易懂]一.Requirements本教程所用环境:代码版本V3.0,源码下载地址:https://github.com/ultralytics/yolov5.gitPytorch:1.6.0Cuda:10.1Python:3.7官方要求Python>=3.8andPyTorch>=1.6.二.准备自己的数据集(VOC格式)1.在yolov5目录下创建paper_data文件夹(名字可以自定义),目录结构如下,将之前labelImg标注好的xml文件和图片放到对应目录下paper_

    2022年5月29日
    109
  • manus使用教程

    manus使用教程

    2026年3月15日
    2
  • CreateEvent方法详解

    CreateEvent方法详解HANDLECreateEvent(  LPSECURITY_ATTRIBUTESlpEventAttributes,//安全属性  BOOLbManualReset,//复位方式  BOOLbInitialState,//初始状态  LPCTSTRlpName//对象名称);调用示例:hEvent=CreateEvent(NULL,TRUE,…

    2022年7月12日
    26
  • 自动优化Windows Xp批处理文件

    自动优化Windows Xp批处理文件自动优化 WindowsXp 批处理文件 nbsp nbsp

    2026年3月26日
    1
  • 【java基础】实现老师和学生的继承类

    【java基础】实现老师和学生的继承类先定义一个 Person 类 包含了学生和老师的共性 packageysy publicclassP privateStrin privateintag publicPerson publicPerson Stringname intage this name name this age age publicString

    2026年3月17日
    2
  • 产品经理高质量产物的五步思维法

    产品经理高质量产物的五步思维法nbsp 产品经理高质量产物的五步思维法职场中经常会遇到以下场景 领导安排工作跨部门会议技术探讨需求问题你遇到这些场景后 接下来会有哪些行为呢 其实 每个场景的本质 都是解决一个或多个问题 找到最合适答案 而不同人接收问题到成果输出的流程机制却不尽相同 也就导致最后的成果质量大相径庭 他人非常满意 高度认可 亦或他人十分失望 你的职场形象大打折扣 结果两极分化的原因是最核心的环节出了问题 即接收问题到成果

    2025年7月23日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号