Eclipse中查看/调试Jar包中的代码

有源码的情况,例如:ssh框架一般在开源社区中都能下载到源码

1、在Web工程中引用的jar包上右键点击属性,弹出对话框。选中Java Source Attachment,然后从本地目录选择jar包源代码(可能是zip或jar文件)。例如我下载的springmvc框架中有一个spring-core-3.2.9.RELEASE-sources.jar,就是他了。

2、成功后,工程中的jar文件图标会发生变化,并且双击jar中的class文件可以直接查看源程序并能设置断点进行调试。

jdk源码路径:JAVA_HOME/src.zip

tomcat 源码:https://tomcat.apache.org/download-70.cgi  ->  Source Code Distributions

PS:用maven管理项目时,从eclipse进入Window->Preferences->Maven,将Download artifact Sources勾上,更新maven工程时会自动下载并关联jar对应的源代码。

如果maven无法自动下载并且无法通过maven右键菜单下载源码和javadoc时,可用如下命令:mvn eclipse:eclipse -DdownloadSources=true -DdownloadJavadocs=true。

在eclipse环境中运行命令时直接用eclipse:eclipse -DdownloadSources=true -DdownloadJavadocs=true即可。

无源码的情况

以下插件的方式不能设置断点。

Eclipse3.7.2或4.3安装反编译插件

myeclipse10安装反编译插件

插件下载地址:

jad插件:

下载jad.exe文件:http://www.varaneckas.com/jad

下载jadeclipse插件:http://sourceforge.net/projects/jadclipse/files/

插件:jad.exe,jadclipse_3.3.0.jar,net.sf.jadclipse_3.3.0.jar

org.sf.feeling.decompiler_1.0.3插件:

下载地址:http://download.csdn.net/detail/u014079773/9555252


jad插件安装:

eclipse安装插件步骤:
1:把下载下来的jad.exe复制到安装jdk1.7所在的jre的bin目录下

如:D:\Program Files\Java\jdk1.7.0_67\jre\bin\

2:把下载下来的jadeclipse_3.3.0.jar复制到Eclipse安装目录下的plugins目录下

如:D:\eclipse\plugins

3:打开Eclipse,然后Windows->Preferences->Java->JadClipse,然后设置Path to decompiler为jad.exe在本地环境路径

如:D:\Program Files\Java\jdk1.7.0_45\jre\bin\jad.exe

Use Eclipse code formatter(overrides Jad formatting instructions)选项打勾,与格式化出来的代码样式一致。

Directory for temporaryfiles是临时文件产生的存放路径,可以不修改。修改后点击Apply提交保存设置。

4:在eclipse窗口下,点击Window > Preferences > Java > JadClipse > Misc,将Convert Unicode strings into ANSI strings选项打勾,避免反编译后可能出现的中文乱码。

5:在General-Edtiors-File Associations 中点击.class设置其编辑器默认为JadClipse


myeclispe安装插件步骤:

1.将jad.exe解压到java的\jdk\bin目录下如:D:\Program Files\Java\jdk1.7.0_67\jre\bin\

2.将jadeclipse插件net.sf.jadclipse_3.3.0.jar 拷贝到myeclipse安装目\Common\plugins\目录下

3.在myeclipse安装目录下的dropins中创建JadClipse文件夹,然后在JadClipse文件夹中分别创建features和plugins文件夹,将net.sf.jadclipse_3.3.0.jar 分别拷贝到features和plugins文件夹中。

4.启动myeclipse后,配置jadeclipse插件

 1)在eclipse窗口下,点击Window > Preferences > Java > JadClipse > Path to Decompiler设置为jad.exe在本地环境路径

如:D:\Program Files\Java\jdk1.7.0_45\jre\bin\jad.exe

Use Eclipse code formatter(overrides Jad formatting instructions)选项打勾,与格式化出来的代码样式一致。

Directory for temporaryfiles是临时文件产生的存放路径,可以不修改。修改后点击Apply提交保存设置。

 2)在eclipse窗口下,点击Window > Preferences > Java > JadClipse > Misc,将Convert Unicode strings into ANSI strings选项打勾,避免反编译后可能出现的中文乱码。

3)在General-Edtiors-File Associations 中点击.class设置其编辑器默认为JadClipse


二、org.sf.feeling.decompiler_1.0.3插件安装:

eclispe安装

1.在eclipse安装目录下创建文件夹“eclispePlugin”然后创建子文件夹“decompiler

2.把解压文件下的features和plugins放入创建的子文件夹下

目录结构如下:

Eclipse中查看/调试Jar包中的代码

3.eclipse安装目录“dropins”下创建“decomliler.link”引入插件路径如下:

path=D:\\eclipse-3.7\\eclipsePlugin\\decompiler

目录结构如下:

Eclipse中查看/调试Jar包中的代码


myeclipse安装:

1.在myeclipse安装目录“dropins”下创建文件夹“decompiler”

2.把解压文件下的features和plugins放入创建的文件夹下

目录结构如下:

Eclipse中查看/调试Jar包中的代码


eclipse或者myeclipse重新启动,如下截图表示安装成功:

Eclipse中查看/调试Jar包中的代码

说明:
1.重用缓存代码:只会反编译一次,以后每次打开该类文件,都显示的是缓存的反编译代码。
2.忽略已存在的源代码:若未选中,则查看Class文件是否已绑定了Java源代码,如果已绑定,则显示Java源代码,如果未绑定,则反编译Class文件。若选中此项,则忽略已绑定的Java源代码,显示反编译结果。
3.显示反编译器报告:显示反编译器反编译后生成的数据报告及异常信息。
4.使用Eclipse代码格式化工具:使用Eclipse格式化工具对反编译结果重新格式化排版,反编译整个Jar包时,此操作会消耗一些时间。
5.使用Eclipse成员排序:使用Eclipse成员排序对反编译结果重新格式化排版,反编译整个Jar包时,此操作会消耗大量时间。
6.以注释方式输出原始行号信息:如果Class文件包含原始行号信息,则会将行号信息以注释的方式打印到反编译结果中。
7.根据行号对齐源代码以便于调试:若选中该项,插件会采用AST工具分析反编译结果,并根据行号信息调整代码顺序,以便于Debug过程中的单步跟踪调试。
8.设置类反编译查看器作为缺省的类文件编辑器:默认为选中,将忽略Eclipse自带的Class Viewer,每次Eclipse启动后,默认使用本插件提供的类查看器打开Class文件。