如何将class文件反编译成java文件
多少不凡、只因不甘。
工作中最常遇见的是查看某些想查看某些依赖源码时,又不能下载源码,往往只能通过提供的 jar 文件反编译查看。
一般情况下如果只是查看,通常有两种方式:
- 通过 idea 编辑器引入mvn依赖可直接查看 jar 中的文件,如果是class文件可直接拖入idea编辑器中就可查看
- 下载 JD-GUI 编辑器(是一个class文件反编译java文件软件),可直接打开 jar 文件、class文件、class文件目录
- JD-GUI 具体软件如下图样式
很特殊的情况下,如果我们的源码丢了,只有线上跑的 class文件
这个时候就需要通过class文件 反编译成 java文件使用,以满足我们对现有代码的二次开发功能。
所以我们需要批量将整个目录下的class文件编译成java源文件。
以上两种方式我们可以一个一个文件反编译后通过拷贝保存的方式将文件恢复,如果数量不多只有几个或者几十个还好,但是如果有上百或者上千个文件,这将是很大的工作量。
索性 JD-GUI 反编译工具 提供了批量保存的功能
JD-GUI 编辑工具反编译后批量保存成java文件
具体操作步骤如下:
- 将存放class目录的整个文件都导入到 编辑器中,如果是 jar 文件可直接打开
- 点击 File -> Save All Sources 将整个文件夹下所有class 文件反编译成 java 并且保存,如下图所示
- 选择保存目录即可。
- 如果是保存单个文件,点击 File -> Save Source, 选择保存目录即可。
通过命令将class文件转换成Java文件
命令如下:
//具体命令
jad.exe -r -d c:\src -s java -8 c:\classes\**\*.class
命令行选择的列表
-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)
如何将class文件反编译成java文件相关推荐
- Java的class文件批量反编译成Java文件
Java的class文件批量反编译成java文件 Class文件是java文件编译后产生的一个文件,class文件便于在软件上运行,但是我们无法阅读中间的程序,所以我们需要将class文件转换成jav ...
- 什么是pyc文件,把python的py文件编译成pyc文件,把pyc文件反编译成py文件。以及python编译的如何设置不生成pyc文件
文章目录 1 什么是pyc文件 1.1 什么是pyc文件 1.2 pyc文件是怎么生成的,有什么好处 2 把python的py文件编译成pyc文件 2.1 使用python内置库py_compile把 ...
- 如何.class文件反编译成为.java文件
一.工具/材料 jad.exe反编译插件 下载地址:[我的百度网盘-无密码](http://pan.baidu.com/s/1qWmNlww) 二.方法/步骤 1.说明 在众多的JAVA反编译工具中, ...
- 将DEX反编译成Java源代码
本文翻译自:decompiling DEX into Java sourcecode 如何将Android DEX(VM字节码)文件反编译成相应的Java源代码? #1楼 参考:https://sta ...
- 【反编译】安卓APK反编译为java文件
[反编译]安卓APK反编译为java文件 准备工具 要反编译的apk文件, 以微信8.0.apk为例子 dex2jar 下载地址 dex2jar-2.0反编译.zip-Android文档类资源-C ...
- jar反编译成java工具
在开发过程中,经常使用到jar包.有的jar是在ide不能查看源码的. 这时就可以使用到jar的反编译工具. 传送门: http://download.csdn.net/detail/wzp09tjl ...
- JSP文件如何转换成Java文件?
文章目录 jsp 文件如何转换成 java 文件 jsp 何时开始编译 jsp 编译后的文件存储目录 jsp 文件如何转换成 java 文件 html ...
- java的class文件批量反编译成java
近来刚做完项目闲来无事就研究起了反编译,之前做一个orc识别vin码功能在度娘出来的全是那几家公司在做广告,后在在公司数据破解的同事帮助下弄了个apk过来.反编译看看是怎么实现的,后面反编译出来看到是 ...
- apk文件反编译成android代码
文章主要介绍apktool,jd-gui,dex2j的编译步骤,若有其他需要可直接滑到文章最后有自动化工具下载地址.自动化工具不需要代码操作,直接拖动反编译出源代码. 1.Apk反编译步骤 准备工具 ...
- doc无法编译java文件_java编译成jar文件.doc
java编译成jar文件 Java程序打包成jar包 (2012-06-08 10:28:23) 转载▼ 标签: 分类: 方法一:通过jar命令 jar命令的用法: 下面是jar命令的帮助说明: 用法 ...
最新文章
- JSon数据查询---Jlinq
- 【Leetcode | 03】String
- 个人pkm软件 pim软件_个人申请软件著作权需要走哪些流程
- CRC32(Cyclic Redundancy Check)循环冗余校验:推导
- 智能优化算法:野狗优化算法 - 附代码
- windows下使用rsync
- Android仿虾米音乐播放器之专辑图片模糊处理
- 知道创宇获CNNVD年度优秀技术支撑单位及漏洞预警报送专项奖
- 使用OP-AMP电路将DAC0832输出电压转换为电流
- 最新上市公司商誉减值损失数据
- Pycharm新建项目,new environment 和 existing interpreter的区别
- 2013年c语言课后作业答案,C语言课后作业答案.pdf
- mac 访问局域网服务器地址
- mac 打开html文件乱码,mac打开txt文件乱码解决方法
- 一声不吭辞职的人都是聪明人
- 50个极好的bootstrap前端框架
- 教你如何搜索pois(兴趣点),制作可视化作品
- android中的评分条(ratingBar)
- Mac无法写入移动硬盘
- 双线机房双IP linux设置路由
热门文章
- 比PS更简单好用的自动抠图软件 一键抠图工具
- 二叉树的叶结点/ 树的深度计算
- MaxScript 冷门知识点
- 微信小程序轮播图swiper使用
- java实现随机抽取题目_随机抽取样本问题蓄水池算法按权重抽取问题
- spotfire Document Property
- Python+OpenCV实现sobel边缘检测
- DDS(Direct Digital Synthesizer)数字频率合成器
- HTML-----超链接与表格Lable(详细可看)
- catia 桥接曲面圆角_CATIA建模教程(二)——圆角及桥接在空间曲线中的应用.pdf...