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

How to get Java Decompiler / JD / JD-Eclipse running in Eclipse Helios

通常建议将Java Decompiler(JD)作为一个很好的Java Decompiler。 JD-Eclipse是JD的Eclipse插件。

我在几台不同的计算机上遇到问题,无法运行插件。 每当我尝试打开.class文件时,都会显示标准的"未找到源"编辑器,显示低级字节码反汇编,而不是反编译器期望的Java源输出。

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

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


这是我遇到的东西:

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 Juno中工作-我不得不做一些附加步骤。

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

  • 选择" * .class"并将" Class File Editor"标记为默认值
  • 选择" * .class不带源"->添加->"类文件编辑器"->设为默认
  • 重新开始蚀

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

    如果您的类位于.jar中,则可以将该jar作为另一个库添加到Build Path中。在Package Explorer中,浏览新库,然后在Class File Editor中打开该类。

    如果要反编译文件系统上的任何类,则必须将其放置在适当的文件夹层次结构中,并且根文件夹必须包含在构建路径中。这是一个例子:

  • 类是... / someDir / foo / bar / MyClass.class中的foo.bar.MyClass
  • 在您的Eclipse项目中,添加一个名为aClassDir的文件夹,该文件夹链接到... / someDir。
  • 将该链接的文件夹添加到项目的构建路径。
  • 使用导航器视图导航并在类文件编辑器中打开.class文件。 (注意:文件系统上的普通.class文件隐藏在Package Explorer视图中。)
  • 注意:如果someDir是项目的子文件夹,则可以跳过第2步(链接文件夹)并将其直接添加到"构建路径"。但这不起作用,如果它是Eclipse项目的编译器输出文件夹。

    附言我希望我可以双击任何项目子文件夹中的任何.class文件,而无需将其放在类路径中...


    我要做的简单的事情是:

    在Eclipse中进入>窗口>首选项

    (可选)在搜索框中输入"文件"以帮助修剪选项树。
    转到常规>编辑器>文件关联。

    单击" .class"类型。下面有2个编辑器,我单击"类文件编辑器"-一个带有JD图标的编辑器,然后单击右侧的"默认"按钮。

    做完了
    现在,您的所有班级都属于我们。


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

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

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

    转到首选项,然后找到"文件关联"
    单击* .class,然后将" class File Editor"设置为默认值。

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


    即使在Spring工具套件(STS)中,它也适用于所有版本的eclipse。
    这是步骤

    前往URl
    按照链接下载或单击以下链接直接下载
    点击这里下载

    下载JD-Eclipse
    下载并解压缩JD-Eclipse更新站点,

    启动Eclipse,

    单击"帮助>安装新软件...",

    单击按钮"添加..."以添加新的存储库,

    输入" JD-Eclipse更新站点",然后选择本地站点目录,

    enter image description here

    选择提取的文件夹并命名。我给出了JDA
    然后单击

    enter image description here

    选中" Java Decompiler Eclipse插件",

    enter image description here

    接下来,接下来,下一步...,然后重新启动Eclipse。


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

  • 将jar添加为现有项目的lib
  • 转到"首选项"->"常规"->"编辑器"->"文件关联",使用杯子图标将*.class without source设置为Class File Editor

  • Eclipse 3.x和4.x版的JAD Decomplier插件。

    更新站点:http://feeling.sourceforge.net/update

    脚步:

  • 打开Eclipse IDE。
  • 单击帮助->安装新软件
  • 粘贴在URL上方并命名为JAD。
  • 选择Eclipse类反编译器
  • 单击下一步并接受协议
  • 安装它。
  • 重新启动Eclipse并立即检查。

  • 我改用jadeclipse,因为它无法在3.6 / 3.7 eclipse中使用

    更新网站
    http://webobjects.mdimension.com/jadclipse/3.6/

    安装
    http://5thcross.wordpress.com/2009/05/20/installing-jadclipse-in-eclipse/


    如果您需要反编译独立的jar,请尝试由同一位指导者(JD-Eclipse)的JD-GUI。它是一个独立的应用程序(不需要Eclipse)。它可以同时打开* .class和* .jar文件。足够有趣的是,它需要安装.Net(确实是JD-Eclipse),但其他方面却很有吸引力。

    在这里找到:

    http://jd.benow.ca/

    问候,


  • 下载JD-Eclipse更新站点(github.com/java-decompiler/jd-eclipse)
  • 启动Eclipse,

  • 单击"帮助>安装新软件...",

  • 单击按钮"添加..."以添加新的存储库,

  • 输入" JD-Eclipse更新站点",然后选择本地站点目录,

  • 选中" Java Decompiler Eclipse插件",

  • 接下来,接下来,下一步...,然后重新启动Eclipse。


  • 我进行了步骤1、2、3和7。然后将包含类文件的文件夹放在项目构建路径中(右键单击,属性,java构建路径,库,添加类文件夹,创建新文件夹,高级>> ,链接到文件系统中的文件夹,浏览等),然后重新启动eclipse。


    在Eclipse中添加Java Decompiler的步骤:

  • 打开Eclipse IDE。
  • 单击帮助-> Eclipse Marketplace向导
  • 在"搜索"选项卡中找到JD(JD是用于获取Eclipse Class Decompiler的关键字)
  • 选择Eclipse类反编译器
  • 单击安装。
  • 重新启动Eclipse并检查

  • 只需从JD页面下载该站点。我能够从本地站点的eclipse软件版本中进行安装。