温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何将class文件反编译成java文件

发布时间:2021-04-26 14:33:18 来源:亿速云 阅读:2110 作者:小新 栏目:编程语言

这篇文章给大家分享的是有关如何将class文件反编译成java文件的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

Java的优点是什么

1. 简单,只需理解基本的概念,就可以编写适合于各种情况的应用程序;2. 面向对象;3. 分布性,Java是面向网络的语言;4. 鲁棒性,java提供自动垃圾收集来进行内存管理,防止程序员在管理内存时容易产生的错误。;5. 安全性,用于网络、分布环境下的Java必须防止病毒的入侵。6. 体系结构中立,只要安装了Java运行时系统,就可在任意处理器上运行。7. 可移植性,Java可以方便地移植到网络上的不同机器。8.解释执行,Java解释器直接对Java字节码进行解释执行。

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

本教程操作环境: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文件放置在同一目录下(非必需,可随意,后面会讲解)

如何将class文件反编译成java文件

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

例如:

f: 
cd F:\Jad

如何将class文件反编译成java文件

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

如何将class文件反编译成java文件

示例:

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

如何将class文件反编译成java文件
备注说明: *.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 < dir >- 指定输出文件的文件目录
-dead -试图反编译代码的dead 部分(default: no)
-disass - 不用用字节码的方式反编译 (no JAVA source generated)
-f - 输出整个的名字,无论是类还是方法
-ff -输出类的成员在方法之前 (default: after methods)
-i - 输出所有的变量的缺省的最初值
-l< num >- 将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 -反编译时显示方法名

感谢各位的阅读!关于“如何将class文件反编译成java文件”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI