Rumah  >  Artikel  >  Java  >  怎么将class文件反编译成java文件

怎么将class文件反编译成java文件

青灯夜游
青灯夜游asal
2021-04-26 14:00:5828605semak imbas

方法:1、下载“jad.exe”插件,将其和“.class”文件放置在同一目录下;2、打开cmd命令窗口,使用cd命令进入“Jad.exe”所在目录;3、执行“Jad -d java文件存放路径 -sjava class文件路径”命令即可。

怎么将class文件反编译成java文件

本教程操作环境:windows7系统、java8版、DELL G3电脑。

一、工具/材料

jad.exe反编译插件

下载地址可参考:

https://varaneckas.com/jad/

ttp://pan.baidu.com/s/1qWmNlww

二、方法/步骤

说明

  • 在众多的JAVA反编译工具中,有几种非常著名的工具使用了相同的核心引擎——JAD,其中主要包括:Front End
    Plus、mDeJava、Decafe Pro、Cavaj Java Decompiler、DJ Java
    Decompiler、NMI’s Java Class
    Viewer和国产的JAVA源代码反编译专家等等。JAD本身是一个命令行工具,没有图形界面,上述的这些工具大多是在JAD内核的基础之上加了一个图形界面而已。这么多种产品的共同选择,足可证明JAD在JAVA反编译领域中的尊贵地位。

操作

将jad.exe和.class文件放置在同一目录下(非必需,可随意,后面会讲解)

在这里插入图片描述

开始-运行(或Win+R)-cmd打开系统命令窗口,进入Jad.exe所在目录            

例如: 

f: 
cd F:\Jad

在这里插入图片描述

输入命令Jad -d F:\Jad\test -sjava test\*.class 回车  即可生成Java文件

在这里插入图片描述

示例:

Jad -d F:\Jad\test -sjava test\*.class

在这里插入图片描述
备注说明: *.class 中*是通配符,默认选中此目录下所有.class文件,如只需要反编译某一个.class文件,可直接写成 文件名+.class

如:Jad -d F:\Jad\test -sjava test\CaseInfoSaveAction.class

Jad命令--帮助提示:

-a - 用JVM字节格式来注解输出
-af - 同 -a,但是注解的时候用全名称
-clear - 清除所有的前缀
-b - 输出多余的括号 (e.g., if(a) { b(); }, default: no)
-d 560af03adf47e8bd73cbeb555f5068f4- 指定输出文件的文件目录
-dead -试图反编译代码的dead 部分(default: no)
-disass - 不用用字节码的方式反编译 (no JAVA source generated)
-f - 输出整个的名字,无论是类还是方法
-ff -输出类的成员在方法之前 (default: after methods)
-i - 输出所有的变量的缺省的最初值
-l2f3ba381e60f5b0407bec75be34f44f3- 将strings分割成指定数目的块的字符 (default: no)
-lnc - 将输出文件用行号来注解 (default: no)
-nl - 分割strings用新行字符 newline character (default: no)
-nodos -不要去检查class文件是否以dos方式写 (CR before NL, default: check)
-nocast - 不要生成辅助文件
-nocode -不要生成方法的源代码
-noconv - 不要转换java的定义符 (default: do)
-noctor - 不允许空的构造器存在
-noinner -关掉对内部类的支持 (default: turn on)
-nolvt - 忽略局部变量的表信息
-nonlb - 不要输出一个新行在打开一个括号之前 (default: do)
-o - 无需确认直接覆盖输出 (default: no)
-p - 发送反编译代码到标准输出 STDOUT (e.g., for piping)
-pa -用于生成源文件中的所有包的前缀
-pc -带有数字名称的类的前缀(默认值:_cls)
-pe -未使用异常名称的前缀(默认值:_ex)
-pf -带数字名称字段的前缀(默认值:_fld)
-pi -使用。
-pl -带数字名称的局部变量前缀(默认值:_lcl)
-pm -带有数值名称的方法的前缀(默认值:_mth)
-pp -带有数值名称的方法parms前缀(默认值:_prm)
-pv -将具有相同类型的字段打包成一行(packfields)
-r -恢复包目录结构
-s -输出文件扩展名(默认:.jad)
-空格-关键字(if, while等)和表达式之间的输出空格
-stat -显示处理过的类/方法/字段的总数
-t -使用空格进行缩进(默认值:4)
-t -使用制表符代替空格进行缩进
-v -反编译时显示方法名

相关视频教程推荐:Java视频教程

Atas ialah kandungan terperinci 怎么将class文件反编译成java文件. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Spring Cloud七大组件是什么Artikel seterusnya:IDEA有哪些快捷键