一些Java反编译工具/源代码查看工具的介绍
有的朋友抱怨他们在使用他们公司的闭源框架时看不到底层的源代码。那么可以尝试使用一些Java反编译工具。
下面我举个例子介绍具体使用这些反编译工具的步骤。
JAD
假设我们想在Eclipse里查看第42行Graphics2D的源代码:

直接ctrl加左键进去是看不见源码的。

我们可以使用一个开源的工具JAD通过反编译来查看其源代码。JAD的wiki介绍: https://en.wikipedia.org/wiki/JAD_(software)
Eclipse有一个对应的插件,可以从如下这个链接下载:
http://jadclipse.sourceforge.net/wiki/index.php/Main_Page#Download
1. 根据你使用的Eclipse版本到上述链接里下载对应的插件。

2. 根据操作系统的类型下载反编译器的执行文件。在我的windows系统上我下载的是JAD.exe。


3. 把JAD插件放到Eclipse的plugins文件夹。

4. 把JAD.exe放到JRE目录的bin文件夹下面。

5. 重启Eclipse, 在菜单路径Windows->Preference->Java里,能看到一个新的选项JadClipse。在这里我们把第四步放好的JAD.exe的绝对路径维护给字段”Path to decompiler”。

6. 现在选中一个class按F3,即可看到JAD反编译之后的Java源代码。

JD-GUI
使用很方便,window下就是一个可执行文件。

双击jd.exe, 然后把你想反编译的.class文件拖进JD的窗口即可:

JD会自动反编译并且把源代码显示出来:

通过Maven自动下载依赖包的源代码
如果你的Java项目是通过Maven管理其依赖的,那么想查看依赖包的源代码是一件非常容易的事情:

通过这个Download Sources的右键菜单,可以自动下载依赖包的源代码文件。
例如我的Java项目的pom.xml里定义了cglib这个库的依赖:

那么触发源代码文件的下载之后:

到我的本地仓库根据包的路径名或者文件夹修改时间能够很容易找到刚刚下载的源代码文件。

要获取更多Jerry的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:

