Bruce Auyeung bio photo

Bruce Auyeung

横眉冷对千夫指,俯首甘为孺子牛!

新浪微博 腾讯微博 Github

Java反编译器比较

注:该文是之前发布在我的博客网站 ubuntudaily.net 上面的博文,由于 ubuntudaily.net 已经不可访问,现在把文章迁移到本站点上来。

先说结论:比起 DJ Java Compiler 来说,我更推荐大家使用 JD-GUI 或者 JDeclipse 。下面是DJ Java Compiler和JD-GUI的特性详细对比。

特性DJ Java DecompilerJD-GUI
主页 http://www.djjavadecompiler.com/ http://java.decompiler.free.fr/
更新时间 不确定 18 Aug 2010
免费? 3.7.7.81版本免费,最新版本收费,可以免费使用10次,需要注册 不能包含或者嵌入到商业软件中,其它情况下都是免费的,也就是说商业环境中使用也是免费的
内核 jad[注一] JD-Core
支持平台 windows only windows,linux,mac osx
支持annotations吗? 支持 支持
支持泛型吗? 不支持 支持
支持enum吗? 不支持[注二] 支持
是否有outline? 有,但是只能显示方法列表 有,字段和方法都能显示,且界面和eclipse的outline保持一致
能否直接查看jar包? 能,但是仅限于查看jar包中有哪些文件,不能直接查看jar包中的class的内容(可以先把要查看的class抽取并保存为jad文件,再用DJ Java Decompiler打开,可是这也太蛋疼了吧)。 能,以eclipse大纲视图打开jar包,能直接在大纲视图中选择文件并双击来查看class的内容
文件关联 提供配置项进行class、jar等文件的关联 没有提供
是否有eclipse插件? jadclipse,非同一公司/人出品 jdeclipse,是同一公司/人出品

注一:Jad是一个不再维护的Java反编译器。最新版本的Jad仅支持版本为45.3, 46.0 和47.0的Java类文件,而这些都不是Java 5 生成的。

注二:反编译出来的代码与源代码不一致则认为不支持