晓莲说-何不原创:如何通过jad把class批量反编译成java文件
背景:前几天在项目开发的时候遇到一个问题,那就是利用myeclipse编写好的一个项目打包成jar包后上传部署到服务器里,之后本地的项目被自己改来改去出现了一些问题,想着把上传到服务器里面的war包下载下来重新利用,大家都知道,war包里面的内容解压下来后java文件已经被编译成class文件了,期初用的是一款名为“jd-gui”的工具来反编译,这个很方便,不过缺点是只能一个一个的进行编译,很费时间,不能批处理。于是经过度娘与自己的摸索,利用jad完全可以做到(上面不重要,下面才是重点)。
Jd_gui网盘下载地址:http://pan.baidu.com/s/1skSxgDn(不想批处理的可以直接下载这个)
点击文件(file)中的save Source保存即可

Jad官网下载地址:http://www.varaneckas.com/jad(按照自己的电脑系统下载)
我用的是windows,如下图:

Java jad下载下来解压后有两个文件,一个exe文件和一个帮助文件,为了方便使用,我直接将exe文件放到JDK的bin目录里,这样做是为了能够执行exe文件(不用再环境变量里面配置),至于如何配置,我会在下一篇文章进行介绍。
放在jdkde bin目录后,我们打开cmd(快捷键:windows+R,输入cmd):

点击确定即可。
然后在里面输入:jad.exe -r -d c:\src -s java -8 classes/**/*.class
其中-r 表示恢复源文件的目录结构,,-ff 表示将类属性定义放在类方法定义之前, -d 表示输出目录,-s 表示文件的扩展名 ,-8表示防止乱码问题。
然后回车,你会发现一个很奇怪的现象,

表示找不到指定的文件,这肯定是这样的嘛,因为你电脑上面的c盘子文件下又没有src这个文件,而且也没有对应目录需要执行的classes文件,所以会报错,很正常的啦。
举个例子,首先得在c盘的目录下创建一个src(可以自定义,不过为了方便我们以放在C盘为例),

然后在根目录下(就是与src同目录)把需要反编译的classes文件拷贝过来(包括所有子文件)。

这个classes就是我们想反编译的所有class文件,然后再执行这条语句,你会发现一大串英文。类似这样的。

这就代表编译成功,然后就可以在src里面看到class已经编译成java然后保存到相应的文件夹里面了


希望对你能有帮助。
晓莲说-何不原创:如何通过jad把class批量反编译成java文件的更多相关文章
- 晓莲说-何不原创:java 实现二维数组冒泡排序
新手从业路-为自己回顾知识的同时,也希望和大家分享经验: 话不多说,上代码 public class 冒泡排序 { /** * @param admin * @2017.12.4 ...
- jad批量反编译class和jadeclipse集成到eclipse的设置方法
安装jad配置 1.从http://varaneckas.com/jad/下载windows版本的jad.exe 2.安装完毕后配置jad的系统环境变量 批量解压jar和class文件 1.使用7zi ...
- 【原创】Java批量反编译利器(jd-gui)介绍
Java反编译利器(jd-gui)介绍 当要做白盒测试或安全测试时,我们需要借助工具扫描被测代码,相信大家都遇到过没有源代码,而需要反编译的情形吧,也可能大家用过jad工具,我这里介绍下方便的工具jd ...
- Eclipse下jad反编译之“类文件查看器”不能处理给定的输入错误解决
Eclipse中的插件下载,安装和配置可以参考我的另一篇文章:MyEclipse反编译Class文件 下面重点讲解如何使用jad反编译 1.在DOS窗口中,到class所在目录,直接运行 >ja ...
- jad的用法(反编译某目录下所有class)
jad -s java -d E:\scm\MonitorServerEx\src2 -o -ff -r E:\scm\MonitorServerEx\classes-recomp\**\*.clas ...
- Java反编译工具Jad详解
做项目过程中需要反编译一个jar包,于是作了一些学习,记录下来. Jad(JAva Decompiler)是一个Java的反编译器,可以通过命令行把Java的class文件反编译成源代码. 如果你在使 ...
- 反编译软件jad
http://blog.csdn.net/small____fish/article/details/7687261 这是原网址,挺全的. 官网上下载jad,再把jad.exe 复制到javahome ...
- jad 反编译java
1 安装 解压jad.zip文件到任何的目录.将会创建两个文件,一个是jad.exe另一个是readme文 件,不需要任何别安装2 如何使用jad 如果我们有一个单独的java文件example1.c ...
- JAD 反编译
自动拆装箱 对于基本类型和包装类型之间的转换,通过xxxValue()和valueOf()两个方法完成自动拆装箱,使用jad进行反编译可以看到该过程: public class Demo { publ ...
随机推荐
- JS的基本类型(小知识)
一:js中的基本类型: 基本类型:boolen, string ,number,null,undefined 引用类型:object,和函数 二.undedifned和null的区别: 1 undef ...
- 添加 hexo yilia 主题的文章阅读量
根据此篇博客(点击查看) 配置出自己的博客阅读量,里面介绍了如何配置开通 leancloud 应用 当然介绍我如何配置 yilia 显示自己的浏览量的. 首先在 yilia 主题下修改 _config ...
- Django Web框架入门
一.Django介绍 Django是一个开放源代码的Web应用框架,由Python写成,采用了MVC的框架模式.Django的主要目的是简便.快速的开发数据库驱动的网站.它强调代码复用,多个组件可以很 ...
- 【Vue】利用父子组件间通信实现一个场景
组件间通信是组件开发的,我们既希望组件的独立性,数据能互不干扰,又不可避免组件间会有联系和交互. 在vue中,父子组件的关系可以总结为props down,events up: 在vue2.0中废弃了 ...
- Spring in action记录
最近一段时间重新学习了一遍SPRING,现在对这些笔记整理一下,一来算是对之前的学习有一个交代,二来当是重新学习一次,三来可以留下备份 这次学习中以SPRING IN ACTION 4这学习资料,整书 ...
- Hibernate映射类型
- empty()和remove()的区别
这两个都是删除元素,但是两者还是有区别的. remove()这个方法呢是删除被选元素的所有文本和子元素,当然包括被选元素自己. 而empty()呢,被选元素自己是不会被删除的. 比如: <div ...
- C# Dapper 轻量ORM调试对SQLServer
Dapper简介 Dapper只有一个代码文件,完全开源,你可以放在项目里的任何位置,来实现数据到对象的ORM操作,体积小速度快. 使用ORM的好处是增.删.改很快,不用自己写sql,因为这都是重复技 ...
- Scanner扫描器
扫描器 : Scanner 接收用户在键盘上的输入内容 是Java自带的一个工具,但是默认情况下没有在我们写的程序中使用三个步骤:1. 导入扫描器 : 导入类文件 import java.u ...
- C#.NET 用程序画图,曲线图
using System;using System.Data;using System.Configuration;using System.Web;using System.Web.Security ...