如何在Eclipse Helios中运行Java Decompiler/JD/JD-Eclipse

Uni*_*ist 41 java eclipse decompiler helios jd-eclipse

Java Decompiler(JD)通常被推荐为优秀的Java Decompiler.JD-Eclipse是JD的Eclipse插件.

我在几台不同的机器上遇到问题以使插件运行.每当我尝试打开.class文件时,标准的"Source not found"编辑器都会显示,显示低级字节码反汇编,而不是您希望从反编译器获得的Java源输出.

http://java.decompiler.free.fr/?q=jdeclipse中的安装文档也不错,但在进行故障排除时非常模糊.

打开此问题以收集更多信息:在Eclipse Helios中运行JD之前您遇到了哪些问题?解决方案是什么?

Uni*_*ist 36

这是我遇到的东西:

1)RTFM并安装在安装文档顶部提到的"Microsoft Visual C++ 2008 SP1可再发行组件包".我最初错过了这个,因为Helios指令结束了.

2)在打开类文件之前关闭所有打开的编辑器选项卡.否则,很容易从之前的尝试中获得过时的编辑器选项卡.

3)在"Java类文件编辑器"(而不是"Java类文件查看器")中打开类文件.使用上下文菜单中的"打开方式"来获得正确的编辑器.如果对结果感到满意,请将其设置为文件关联设置中的默认编辑器,在"窗口/首选项常规/编辑器/文件关联"中选择*.class以使用"Java类文件编辑器"打开.

4)这个人建议从Helios更新站点安装Equinox SDK.我做了,但我不确定这是否真的有必要.谁知道?

5)如果您要查看的类文件位于Eclipse Java项目中,则它们必须位于项目的构建路径中.否则,异常("不在构建路径中")将显示在Eclipse错误日志中,并且反编译将失败.我将类文件作为库/类文件夹添加到构建路径中.

6)从Windows资源管理器拖放类文件或使用文件/打开文件打开它...将无法正常工作.在我的测试中,我给出了"无法打开编辑器:类文件查看器无法处理给定的输入('org.eclipse.ui.ide.FileStoreEditorInput')." 错误.无论如何,这可能是错误的编辑,见3).

7)在基本上运行插件后,一些文件仍然不会因为未知原因而反编译.关闭所有选项卡,重新启动Helios并再次尝试后,此消失.

  • 在Eclipse 4.2M5中,第3步的第二部分对我来说很关键.在上下文菜单中没有"打开方式",因此您需要在"文件关联"下为"*.class without source"添加"类文件编辑器"并将其设置为默认值. (7认同)
  • 我看到"类文件编辑器",而不是"Java类文件编辑器".(Eclipse Indigo SR2)但是选择"类文件编辑器",它仍然会打开旧的"类文件查看器".怎么了?为什么这么难? (2认同)
  • @Leo在eclipse中,Juno将`*.class without source`编辑器设置为`class file editor`.更改`*.class`的设置可能不起作用. (2认同)

San*_*hal 14

为了让它在Eclipse Juno中运行 - 我不得不做一些额外的步骤.

一般 - >编辑 - >文件关联

  1. 选择"*.class"并将"类文件编辑器"标记为默认值
  2. 选择"*.class without source" - > Add - >"Class File Editor" - >将其设为默认值
  3. 重启eclipse


Ken*_*hoi 6

我正在使用Eclipse 3.7 Indigo和Windows 7 64位:

我所做的是按照网站的建议安装Microsoft Visual C++ 2008 SP1可再发行组件包,并由@Universalspezialist提醒.

然后按照站点中的说明安装插件:http://java.decompiler.free.fr/?q = jdeclipse

转到首选项,然后找到"文件关联"单击*.class,然后将"类文件编辑器"设置为默认值.

或许重启Eclipse?(我这样做了,但我不确定是否有必要)


vla*_*ean 6

我做的很简单,让它工作:

进入eclipse> Window> Preferences

(可选)在搜索框"文件"中键入以帮助修剪选项树.去General> Editors>文件关联.

单击".class"类型.下面有两位编辑,我点击"类文件编辑器" - 带有JD图标的编辑器,单击右侧的"默认"按钮.

完成.现在你所有的班级都属于我们.


leo*_*leo 6

JD-eclipse插件0.1.3只能反编译从类路径/构建路径可见的.class文件.

如果您的类位于.jar中,您可以将此jar作为另一个库添加到Build Path中.从Package Explorer中浏览新库并在类文件编辑器中打开该类.

如果要对文件系统上的任何类进行反编译,则必须将其驻留在相应的文件夹层中,并且根文件夹必须包含在构建路径中.这是一个例子:

  1. 类是foo.bar.MyClass在.../someDir/foo/bar/MyClass.class中
  2. 在Eclipse项目中,添加一个任意名称为aClassDir的文件夹,该文件夹链接到.../someDir.
  3. 将该链接文件夹添加到项目的构建路径中.
  4. 使用导航器视图在类文件编辑器中导航和打开.class文件.(注意:文件系统上的普通.class文件隐藏在Package Explorer视图中.)

注意:如果someDir是项目的子文件夹,您可以跳过第2步(链接文件夹)并将其直接添加到构建路径.但是,如果它是Eclipse项目的编译器输出文件夹,则不起作用.

PS我希望我可以双击任何项目子文件夹中的任何.class文件,而无需在类路径中使用它...


Eli*_*iko 5

在 Juno、Kepler 和 Luna 上进行测试后,我发现 JD 仅适用于构建路径上的 *.class 文件

  1. 将 jar 添加为现有项目的库
  2. 转到 Preferences->General->Editors->File Associations,设置*.class without sourceClass File Editor带有杯子图标

  • 这个解决方案在 Eclipse Oxygen 上对我有用。我还将“JD Class File Viewer”设置为“*.class without source”的默认值。 (2认同)