Java反编译工具 Eclipse Class Decompiler 2.0 已发布,支持多种反编译器,求加精置顶

chensuper 2016-05-14 11:01:39
加精
Eclipse Class Decompiler是一款Eclipse插件,整合了多种反编译器,和Eclipse Class Viewer无缝集成,能够很方便的使用插件查看类库源码,进行Debug调试。

Eclipse Class Decompiler对JDK的最低要求为JDK1.5, 能反编译和debug各版本的Class文件,支持JDK8的Lambda语法,同时支持中文等非Ascii码字符集的解析,支持Eclipse 3.5及以上所有版本的Eclipse。

目前本插件下载量已超过16万,日均下载量超过500次,在Eclipse 官方市场 MarketPlace 中排名前10。

为保证反编译插件能支持最新版的Eclipse,本插件不再提供离线下载方式安装,请大家通过Eclipse Marketplace进行安装,在线安装源放置在 github.org 上,不会像sourceforge一样被墙。

插件在 Eclipse Marketplace 上的项目地址:https://marketplace.eclipse.org/content/eclipse-class-decompiler

喜欢本插件的同学可以帮忙点个赞:https://marketplace.eclipse.org/user/login/sso?destination=node/472922/toggle_favorites

安装插件请 拖拽 Install按钮 到Eclipse工具栏或者其他窗口区域(编辑器区域除外)


或采用Eclipse Marketplace 搜索 Decompiler 或者 反编译 进行更新



本插件支持Windows,Linux,Macosx 32位及64位操作系统。

低版本 Eclipse 不包含 Eclipse MarketPlace Client,可以通过以下地址在线更新:

http://cnfree.github.io/Eclipse-Class-Decompiler/update

插件使用说明:

下图为Eclipse Class Decompiler的首选项页面,可以选择缺省的反编译器工具,并进行反编译器的基本设置。缺省的反编译工具为FernFlower,FernFlower 更为先进一些,支持泛型、Enum、注解等JDK1.5以后才有的新语法,同时也支持JDK8 的Lambda表达式,还能进行Debug调试。最重要的是它开源,我重新修改并编译了它的代码,让它能在JDK5下运行,原版的FernFlower需要JDK7支持。



首选项配置选项:

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文件。


插件提供了系统菜单,工具栏,当打开了插件提供的类反编译查看器后,会激活菜单和工具栏选项,可以方便的进行首选项配置,切换反编译工具重新反编译,以及导出反编译结果。






打开项目路径下的Class文件,如果设置类反编译查看器为缺省的查看器,直接双击Class文件即可,如果没有设置为缺省查看器,可以使用右键菜单进行查看。



同时插件也支持直接将外部的Class文件拖拽到Eclipse编辑器中进行反编译。

类反编译查看器右键菜单包含了Eclipse自带类查看器右键菜单的全部选项,并增加了一个“导出反编译源代码”菜单项。



Eclipse Class Decompiler插件也提供了反编译整个Jar文件或者Java包的反编译。该操作支持Package Explorer对包显示布局的操作,如果是平铺模式布局,则导出的源代码不包含子包,如果是层级模式布局,则导出选中的包及其所有的子包。



Debug调试:可以在首选项选中对齐行号进行单步跟踪调试,和普通的包含源代码时的调试操作完全一致,同样的也可以设置断点进行跟踪。当透视图为Debug时,插件自动生成行号并进行对齐方便调试代码,无需进行任何设置。



博文地址:http://www.blogjava.net/cnfree/archive/2016/05/13/430485.html
...全文
7257 17 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
卡布奇亚 2019-07-14
  • 打赏
  • 举报
回复
为什么我现在搜索不到了
小怪丶 2017-09-13
  • 打赏
  • 举报
回复
已经测试了,不错支持
weixin_37151831 2016-12-24
  • 打赏
  • 举报
回复
学习一下,谢谢提供!
风吹麦浪2015 2016-07-15
  • 打赏
  • 举报
回复


debug不了很让人蛋疼啊
风吹麦浪2015 2016-07-15
  • 打赏
  • 举报
回复


debug不了 是什么原因
风吹麦浪2015 2016-07-15
  • 打赏
  • 举报
回复
都 debug不了 难道是我的eclipse 版本的问题
chensuper 2016-05-24
  • 打赏
  • 举报
回复
引用 8 楼 baidu_19760977 的回复:
支持,用着蛮好的
有什么好的建议可以提出来,呵呵。 最近更新的比较频繁,已经到2.4版本了,修改了一些debug相关的bug。
ljheee 2016-05-24
  • 打赏
  • 举报
回复
666666666666666666666
山城忙碌人 2016-05-24
  • 打赏
  • 举报
回复
收藏一下,肯定能用上,谢谢楼主!楼主,你是个好人!
magic_nian 2016-05-23
  • 打赏
  • 举报
回复
支持,用着蛮好的
qq_35078664 2016-05-22
  • 打赏
  • 举报
回复
学习一下,谢谢提供!
chensuper 2016-05-18
  • 打赏
  • 举报
回复
引用 1 楼 tianfang 的回复:
已经 安装了jd,再安装貌似没有启动
这类插件只能安装一个,因为涉及到默认编辑器的问题,jd eclipse 每次启动,会强制让自己成为默认编辑器,没有选项可以去除。 jd eclipse比较简单,我看过它的代码,应该不支持 debug 调试,仅仅就是反编译代码。 不过有个第三方插件支持。 另外jd本身的硬伤就是不支持jdk8的lambda表达式。
chensuper 2016-05-18
  • 打赏
  • 举报
回复
特别感谢版主帮忙置顶
killer-leon 2016-05-18
  • 打赏
  • 举报
回复
http://blog.csdn.net/u011627980/article/details/51362799 http://blog.csdn.net/u011627980/article/details/50800715 http://blog.csdn.net/u011627980/article/details/50800574 http://blog.csdn.net/u011627980/article/details/50800474 http://blog.csdn.net/u011627980/article/details/50765363 http://blog.csdn.net/u011627980/article/details/50601309 http://blog.csdn.net/u011627980/article/details/50371859
line_us 2016-05-16
  • 打赏
  • 举报
回复
和Eclipse Class Viewer无缝集成,能够很方便的使用
tianfang 2016-05-16
  • 打赏
  • 举报
回复
已经 安装了jd,再安装貌似没有启动
使用DJ Java Decompiler你可以反编译class文件并且可以保存为文本文件或其它格式,它很容易使用。DJ Java Decompiler是Windows 2000,Windows XP,Windows 2003,Windows Vista,Windows 7环境下的反编译,它可以从已经编译的二进制class文件重新创建最初的源代码(比如说Java applets)。 DJ Java Decompiler可以反编译复杂的Java applets和二进制文件,产生准确的源代码。DJ Java Decompiler是一个标准的Windows应用程序;它甚至不需要你的机器上安装有JAVA开发环境。DJ Java Decompiler不仅是一个JAVA反汇编器,而且是一个全功能的有着语法高亮的带用户界面的JAVA编辑器。使用DJ Java Decompiler非常容易。选择你想反编译class文件,或者仅仅是双击想反编译class文件。DJ Java Decompiler同时支持在界面上拖拽的方式来反编译class文件。在Windows资源管理器的鼠标右键菜单中你也可以立即看到源代码。你可以在你的电脑硬盘中或者在一个网络磁盘(你有全部的访问权限或者仅仅是修.jad文件改默认的输出目录)中反编译class文件。 你不需要安装有Java虚拟机或者其它任何Java SDK环境,但是你安装了以上环境之后,DJ Java Decompiler就可以创建、编译、运行JAR文件,在浏览器中运行applet小程序。使用DJ Java Decompiler你可以反编译一次性反编译多个class文件。
JAD本身是一个命令行工具,没有图形界面,我之前上传的Cavaj Java Decompiler就是以jad为内核,加了一个图形界面…… 反编译工具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.class>example1.java   五、Option -d   指定反编译的输出文件目录   c:\java\>jad -o -dtest -sjava *.class   命令行选择的列表   -a - 用JVM字节格式来注解输出   -af - 同 -a,但是注解的时候用全名称   -clear - 清除所有的前缀   -b - 输出多于的括号 (e.g., if(a) { b(); }, default: no)   -d   - 指定输出文件的文件目录   -dead -试图反编译代码的dead 部分(default: no)   -disass - 不用用字节码的方式反编译 (no JAVA source generated)   -f - 输出整个的名字,无论是类还是方法   -ff -输出类的成员在方法之前 (default: after methods)   -i - 输出所有的变量的缺省的最初值   -l - 将strings分割成指定数目的块的字符 (default: no)   -lnc - 将输出文件用行号来注解 (default: no)   -nl - 分割strings用新行字符 newline character (default: no)   -nodos -不要去检查class文件是否以dos方式写 (CR before NL, default: check)   -nocast - 不要生成辅助文件   -nocode -不要生成方法的源代码   -noconv - 不要转换java的定义符 (default: do)   -noctor - 不允许空的构造器存在   -noinner -关掉对内部类的支持 (default: turn on)   -nolvt - 忽略局部变量的表信息   -nonlb - 不要输出一个新行在打开一个括号之前 (default: do)   -o - 无需确认直接覆盖输出 (default: no)   -p - 发送反编译代码到标准输出 STDOUT (e.g., for piping) 很多人困扰,反编译之后中文显示乱码问题,其实显示的不是乱码,是unicode字符。 -8 - 将Unicode字符转换为ANSI字符串,如果输出字符串是中文的话一定要加上这个参数才能正确显示。 最常用的反编译指令如下所示: Jad –d D:\javasource –s .java -8 javatest.class 这条指令将当前目录下的javatest.class反编译javatest.java并保存在D:\javasource目录里,其中的提示输出为中文,而不是Unicode代码。

58,452

社区成员

发帖
与我相关
我的任务
社区描述
Java Eclipse
社区管理员
  • Eclipse
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧