开发者社区> 码农工程师> 正文

一些Java反编译工具/源代码查看工具的介绍

简介: 一些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这个库的依赖:




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




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


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【Java筑基】IO流基础之常见工具流和进程通信
【Java筑基】IO流基础之常见工具流和进程通信
12 0
贼好用的Java工具类库,GitHub星标10k+你在用吗?
Hutool是Hu + tool的自造词,前者致敬我的“前任公司”,后者为工具之意,谐音“糊涂”,寓意追求“万事都作糊涂观,无所谓失,无所谓得”的境界。 Hutool是一个Java工具包,也只是一个工具包,它帮助我们简化每一行代码,减少每一个方法,让Java语言也可以“甜甜的”。Hutool最初是我项目中“util”包的一个整理,后来慢慢积累并加入更多非业务相关功能,并广泛学习其它开源项目精髓,经过自己整理修改,最终形成丰富的开源工具集。(抄自作者简介)
17 0
通过 HTTP/2 协议案例学习 Java & Netty 性能调优:工具、技巧与方法论
通过 HTTP/2 协议案例学习 Java & Netty 性能调优:工具、技巧与方法论
11292 0
国人开源了一款小而全的 Java 工具类库,Github标星14K
最近看到了一款小而全的 Java 工具类库:Hutool,Github 已经接近 14K Star 了,想必一定很优秀,现在推荐给大家,很多轮子不要再造了!
21 0
我用java写了个定时工具沾沾自喜,结果发现小丑竟是我自己!
我用java写了个定时工具沾沾自喜,结果发现小丑竟是我自己!
22 0
【Java技术指南】「Unirest编程专题」一起认识一下一个“灰常”优秀的Http工具,让Http开发变得如此简单
Unirest-Java是一个轻量级的HTTP客户端库,它提供了简单易用的API,可以帮助Java开发人员快速地发送HTTP请求和处理响应。在本文中,我们将深入探讨Unirest-Java的技术细节和使用方法。
63 0
Java:EasyExcel快速、简洁、解决大文件内存溢出的Excel处理工具
Java:EasyExcel快速、简洁、解决大文件内存溢出的Excel处理工具
73 0
Java学习笔记:定时任务调度工具之 Timer
Java学习笔记:定时任务调度工具之 Timer
74 0
json与java对象的相互转换工具
通过jackson实现json与java普通对象和集合对象之间的相互转换
160 0
这 9 大工具助你玩转 Java 性能优化!
这 9 大工具助你玩转 Java 性能优化!
85 0
+关注
码农工程师
文章
问答
视频
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关课程
更多
相关电子书
更多
JAVA开发手册1.5.0
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
相关实验场景
更多