如何让 Java Decompiler / JD / JD-Eclipse 在 Eclipse Helios 中运行
Java Decompiler (JD) 通常被推荐为一个很好的 Java 反编译器。 JD-Eclipse是京东的Eclipse插件。
我在几台不同的机器上运行插件时遇到了问题。每当我尝试打开 .class 文件时,标准的“未找到源”编辑器都会显示,显示低级字节码反汇编,而不是您期望从反编译器获得的 Java 源输出。
安装文档位于 http://java.decompiler.free.fr/?q=jdeclipse 在故障排除方面还不错,但相当模糊。
打开这个问题收集更多信息:JD在Eclipse Helios中运行之前遇到了什么问题?解决办法是什么?
Java Decompiler (JD) is generally recommended as a good, well, Java Decompiler. JD-Eclipse is the Eclipse plugin for JD.
I had problems on several different machines to get the plugin running. Whenever I tried to open a .class file, the standard "Source not found" editor would show, displaying lowlevel bytecode disassembly, not the Java source output you'd expect from a decompiler.
Installation docs in http://java.decompiler.free.fr/?q=jdeclipse are not bad but quite vague when it comes to troubleshooting.
Opening this question to collect additional information: What problems did you encounter before JD was running in Eclipse Helios? What was the solution?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

发布评论
评论(14)
这是我遇到的问题:
1) RTFM 并安装提到的“Microsoft Visual C++ 2008 SP1 Redistributable Package”
在安装文档的顶部。我一开始错过了这一点,因为赫利俄斯的说明在最后。
2) 在打开类文件之前关闭所有打开的编辑器选项卡。否则,很容易从之前的尝试中获得过时的编辑器选项卡。
3)在“Java类文件编辑器”(不是“Java类文件查看器”)中打开类文件。使用上下文菜单中的“打开方式”来获取正确的编辑器。如果对结果感到满意,请将其设为文件关联设置中的默认编辑器,在窗口/首选项常规/编辑器/文件关联中选择 *.class 以使用“Java 类文件编辑器”打开。
4) 此人建议从 Helios 更新站点安装 Equinox SDK。我做到了,但我不确定这是否真的有必要。有人知道吗?
5) 如果您尝试查看的类文件位于 Eclipse Java 项目中,则它们需要位于项目的构建路径中。否则,Eclipse 错误日志中将显示异常(“不在构建路径中”),并且反编译将失败。我将类文件作为库/类文件夹添加到构建路径中。
6) 从 Windows 资源管理器中拖放类文件或使用“文件/打开文件...”将其打开将不起作用。在我的测试中,我给出了“无法打开编辑器:类文件查看器无法处理给定的输入('org.eclipse.ui.ide.FileStoreEditorInput')”。错误。无论如何,这可能是错误的编辑器,请参阅 3)。
7) 插件基本运行后,有些文件仍然无法反编译,原因不明。关闭所有选项卡、重新启动 Helios 并重试后,此问题消失。
JD-eclipse插件0.1.3只能反编译从类路径/构建路径中可见的.class文件。
如果您的类驻留在 .jar 中,您只需将此 jar 作为另一个库添加到构建路径中即可。从包资源管理器中浏览新库并在类文件编辑器中打开该类。
如果要反编译文件系统上的任何类,它必须驻留在适当的文件夹层次结构中,并且根文件夹必须包含在构建路径中。下面是一个示例:
- Class is foo.bar.MyClass in .../someDir/foo/bar/MyClass.class
- 在您的 Eclipse 项目中,添加一个具有任意名称 aClassDir 的文件夹,该文件夹链接到 . ../一些目录。
- 将链接的文件夹添加到项目的构建路径中。
- 使用导航器视图在类文件编辑器中导航并打开 .class 文件。 (注意:文件系统上的普通 .class 文件隐藏在 Package Explorer 视图中。)
注意:如果 someDir 是项目的子文件夹,您可能可以跳过步骤 2(链接文件夹)并将其直接添加到 Build 中小路。但如果它是 Eclipse 项目的编译器输出文件夹,则不起作用。
PS 我希望我可以双击任何项目子文件夹中的任何 .class 文件,而不需要将其放在类路径中...
我正在使用 Eclipse 3.7 Indigo 和 Windows 7 64 位:
我所做的是按照网站的建议和 @Universalspezialist 的提醒安装 Microsoft Visual C++ 2008 SP1 Redistributable Package。
然后按照站点中所述安装插件: http://java.decompiler.free.fr/ ?q=jdeclipse
转到首选项,然后找到“文件关联”
单击*.class,然后将“class File Editor”设置为默认值。
也许重新启动 Eclipse? (我这样做了,但我不确定是否有必要)
我使用 jadeclipse 代替,因为它无法在 3.6/3.7 eclipse 中工作
更新站点
http://webobjects.mdimension.com/jadclipse/3.6/
安装
http://5thcross.wordpress.com/2009/05/ 20/在 eclipse 中安装 jadclipse/
适用于 Eclipse 版本 3.x 和 4.x 的 JAD Decomplier 插件
更新站点:http ://feeling.sourceforge.net/update
步骤:
- 打开 Eclipse IDE。
- 单击“帮助”->“安装新软件”
- 粘贴上面的 URL 并将名称命名为 JAD。
- 选择 Eclipse Class Decompiler
- 单击“下一步”并接受协议
- 进行安装。
- 重新启动 Eclipse 并立即检查。
如果您需要反编译独立jar,请尝试由同一作者(JD-Eclipse)编写的JD-GUI。它是一个独立的应用程序(不需要 eclipse)。它可以打开 *.class 和 *.jar 文件。有趣的是,它需要安装 .Net(JD-Eclipse 确实如此),但除此之外,它的工作方式就像一个魅力。
在这里找到它:
问候,
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
启动 Eclipse,
单击“帮助 > 安装”新软件...”,
单击“添加...”按钮添加新存储库,
输入“JD-Eclipse Update Site”并选择本地站点目录,
下一步,下一步,下一步...然后重新启动 Eclipse。
Launch Eclipse,
Click on "Help > Install New Software...",
Click on button "Add..." to add an new repository,
Enter "JD-Eclipse Update Site" and select the local site directory,
Check "Java Decompiler Eclipse Plug-in",
Next, next, next... and restart Eclipse.