Jad是一个Java的一个反编译工具,是用命令行执行,和通常JDK自带的java,javac命令是一样的。不过因为是控制台运行,所以用起来不太方便。不过幸好有一个eclipse的插件JadClipse,二者结合可以方便的在eclipse中查看class文件的源代码。下面介绍一下配置:
A.下载JadClipse,http://jadclipse.sourceforge.net/wiki/index.php/Main_Page#Download,注意选择与eclipse版本一致的版本,我用的是Eclipse3.4,所以选择下载版本net.sf.jadclipse_3.3.0.jar
B.下载Jad,http://www.varaneckas.com/jad,下载相应版本
C.将下载下来的Jadclipse,如net.sf.jadclipse_3.3.0.jar拷贝到Eclipse下的plugins目录即可。当然也可以用links安装,不过比较麻烦。
D.将Jad.exe拷贝到JDK安装目录下的bin文件下(方便,与java,javac等常用命令放在一起,可以直接在控制台使用jad命令),我的机器上的目录是D:\Program Files\Java\jdk1.6.0_02\bin\jad.exe
F.然后,重新启动Eclipse,找到Eclipse->Window->Preferences->Java,此时你会发现会比原来多了一个JadClipse的选项,单击,会出现,如下:,在Path to decompiler中输入你刚才放置jad.exe的位置,也可以制定临时文件的目录,如图所示。。当然在JadClipse下还有一些子选项,如Debug,Directives等,按照默认配置即可。
G.基本配置完毕后,我们可以查看一下class文件的默认打开方式,Eclipse->Window->Preferences->General->Editors->File Associations,我们可以看到下图:
,我们可以看到class文件的打开方式有两个,JadClipse和Eclipse自带的Class File Viewer,而JadClipse是默认的。
H.全部配置完成,下面我们可以查看源码了,选择需要查看的类,按F3即可查看源码,如查看Annotation中的Target,使用jad查看源码如下:
大家可以看到最上面的一行
"/*jadclipse*/// Decompiled by Jad v1.5.8g. Copyright 2001 Pavel Kouznetsov.",说明是由jad反编译的。
PS:网上说对于存在源代码的类,它不会强行反编译,也就是说它还是会用eclipse自带的Class File Viewer查看class文件。这个我还没有进行过验证。 另外附上我用的jad和jadclipse的压缩包,方便大家下载:/Files/landon/DeComiler.rar
Installation
- Put the JadClipse JAR file into the plugins folder of your Eclipse installation.
- Restart Eclipse (eclipse -clean).
- Get Jad.
- Put the Jad executable into a directory that is in the execution path of your operating system. Alternatively, you can configure the path to the Jad executable under Window > Preferences... > Java > JadClipse > Path to Decompiler. (Set the full path, e.g. C:\Program Files\Jad\jad.exe)
- Go to Window > Preferences... > General > Editors > File Associations and make sure that the JadClipse Class File Viewer has the default file association for *.class files.
Troubleshooting
- The JadClipse plug-in is not activated when I start Eclipse.
- You'll need to launch Eclipse with the -clean flag to allow the environment to detect the plug-in. Subsequent launching of Eclipse won't require the -clean flag.
eclipse -clean
- The Eclipse Class File Viewer instead of the JadClipse Class File Viewer is opened.
- Go to Window > Preferences... > General > Editors > File Associations and make sure that the JadClipse Class File Viewer has the default file association for *.class files.
- The JadClipse Class File Viewer does not show the decompiled source.
- If the editor contains the following text segment JadClipse was not able to execute the Jad binary. Make sure that the path to the binary (Path to Decompiler) is set correcly in the preferences.
/*jadclipse*/ /*
DECOMPILATION REPORT Decompiled from: D:\Program Files\Java\jdk1.5.0_06\jre\lib\rt.jar
Total time: 16 ms
Jad reported messages/errors:
Exit status: 0
Caught exceptions:
java.io.IOException: CreateProcess: (...)
http://jadclipse.sourceforge.net/wiki/index.php/Main_Page#Installation
http://jd.benow.ca/jd-gui/downloads/#jd-gui
jd-gui
http://jd.benow.ca/jd-gui/downloads/jd-gui-0.3.6.windows.zip