扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
JAVA是采用一种称做“字节编码”的程序结构,分为小程序(嵌入到HTML文件中)和应用程序(直接在命令状态下执行)两种类型。无论哪种结构,一旦用JAVAC 命令编译后,均变成后缀为CLASS的同名可执行文件。这种文件是不可阅读的代码。 经查阅了SUN公司的JDK(JDK1.1.3)文档资料后,我找到了一个据称是可反编译JAVA的JAVAP文件(EXE),这个文件位于\JDK\BIN\ 下面,经按说明使用后,感到失望,原来这个“反编译”仅可反编译出JAVA程序的数据区(定义)、若干方法和类的引用等。 这里我用了一个简单例子来说明问题。 详情见:
专注于为中小企业提供成都做网站、成都网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业邱县免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了近千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
安装Java jdk后
看安装目录里有没有jad.exe,没有要下载,一般都有的
配置Java环境变量
开始-运行-cmd-回车-进入命令行窗口:
cd+空格+class文件所在路径:
按下面的命令进行反编译:
例如:[2] jad -sjava example.class 回车
在目录里可以看到example.java源文件
[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没有参数可以去掉它,用别的办法吧。
第一种方式:Help——Eclipse Marketplace
安装eclipse自带的插件( Decompiler )
第二种方式:使用反编译工具(XJad2.2等)
第三种方式:在cmd中的输入javap -verbose HellloWorld.class 回车,此处的HelloWorld.class为自己创建的HelloWorld.java编译后的class文件
不行。可执行文件你即使反编译出来 也不是源码。包括所有的反编译软件,反编译出来的,都不是源码,别看着反编译出来的代码感觉是对的,有的反编译出来还是可以运行的都不算。另外反编译别人的软件 ,只能自己研究,去过用于商业用途可是犯法的哦
反编译的工具有好多, 在众多的JAVA反编译工具中,有几种非常著名的工具使用了相同的核心引擎——JAD,其中主要包括:Front End Plus、mDeJava、Decafe Pro、Cavaj Java Decompiler、DJ Java Decompiler、NMI’s Java Class Viewer和国产的JAVA源代码反编译专家。
jad是java的反编译工具,是命令行执行,反编译出来的源文件可读性较高。可惜用起来不太方便。还好
找到eclipse下的插件,叫jadclipse,安装好之后,只要双击.class文件,就能直接看源文件,包括jar
包中的class文件,也可以直接反编译。
1.下载jad1.5.8e
下载后解压。解压缩后将jad.exe拷贝到JRE的bin目录下,如d:/Java/jre1.5/bin
2.下载net.sf.jadclipse_3.2.4.jar
3.安装插件,有如下两种方法
A.将net.sf.jadclipse_3.2.4.jar复制到D:/leaf/eclipse/plugins目录下。
B.在d:/leaf下建立ecliplsePlungin/jadclipse/eclipse/plugins目录,将net.sf.jadclipse_3.2.4.jar放到该目录。在d:/leaf/eclipse/links下建jadclipse.link,内容为path=d/://leaf//ecliplsePlungin//jadclipse
3.启动Eclipse后,在Windows(窗口)--Perference(首选项)--Java下面应该会多出一个JadClipse目录,相关的设置可以在此修改配置jadclipse:设置path to decompiler为jad.exe的全路径,如:d:/Java/jre1.5/bin/jad.exe,在Directory for temporary files中指定临时文件的路径,如:C:/Java/temp
4、在Eclipse的Windows--Perference--General-Editors-File Associations中修改“*.class”默认关联的编辑器为“JadClipse Class File Viewer”
5、安装完成,双击class文件,Eclipse将自动反编译了。
6、把*.java 和*.class文件放在同一文件夹下,在反编译时它回自动去寻找*.java的文件。
反编译工具jad简单用法
以下假设jad.exe在c:/java目录下
一、基本用法
Usage: jad [option(s)]
直接输入类文件名,且支持通配符,如下所示。
c:/java/jad example1.class
c:/java/jad *.class
结果是将example1.class反编译为example1.jad。将example1.jad改为example1.java即得源
文件。
二、Option -o
不提示,覆盖源文件
三、Option -s
c:/java/jad -sjava example1.class
反编译结果以.java为扩展名。
四、Option -p
将反编译结果输出到屏幕
c:/java/jad -p example1.class
将反编译结果重定向到文件
c:/java/jad -p example1.classexample1.java
五、Option -d
指定反编译的输出文件目录
c:/java/jad -o -dtest -sjava *.class
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流