【问题标题】:How to get Java Decompiler / JD / JD-Eclipse running in Eclipse Helios如何让 Java Decompiler / JD / JD-Eclipse 在 Eclipse Helios 中运行
【发布时间】:2011-05-29 13:32:24
【问题描述】:

Java Decompiler (JD) 通常被推荐为一个很好的 Java Decompiler。 JD-Eclipse是京东的Eclipse插件。

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

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

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

【问题讨论】:

  • 我做了步骤1、2、3和7。我把包含类文件的文件夹放在项目构建路径中(右键单击、属性、java构建路径、库、添加类文件夹,创建新文件夹,高级>>,链接到文件系统中的文件夹,浏览,...)然后重新启动eclipse。
  • JD-Eclipse的新家是:jd.benow.ca/#jd-eclipse

标签: java eclipse decompiler helios jd-eclipse


【解决方案1】:

这是我遇到的东西:

1) RTFM 并安装提到的“Microsoft Visual C++ 2008 SP1 Redistributable Package” 在安装文档的顶部。起初我错过了这一点,因为 Helios 的说明在最后。

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

3) 在“Java 类文件编辑器”(不是“Java 类文件查看器”)中打开类文件。使用上下文菜单中的“打开方式”来获得正确的编辑器。如果对结果满意,请将其设为 File Association 设置中的默认编辑器,在 Window/Preference General/Editors/File Associations 中选择 *.class 以使用“Java Class File Editor”打开。

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

5) 如果您尝试查看的类文件位于 Eclipse Java 项目中,则它们需要位于项目的构建路径中。否则,Eclipse 错误日志中将出现异常(“不在构建路径中”),并且反编译将失败。我将类文件作为库/类文件夹添加到构建路径中。

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

7) 插件基本运行后,部分文件仍无法反编译,原因不明。关闭所有选项卡、重新启动 Helios 并重试后,此问题消失了。

【讨论】:

  • 如果我可以在对话框窗口中看到它以添加库或类文件夹,我将能够执行步骤 5。;但我不能。我也无法在任何地方找到有关如何使用此反编译器的说明
  • 第 3 步的第二部分对我来说是 Eclipse 4.2M5 中的关键。上下文菜单中没有打开方式,因此您需要在“*.class without source”的文件关联下添加类文件编辑器并将其设为默认值。
  • 我看到的是“类文件编辑器”,而不是“Java 类文件编辑器”。 (Eclipse Indigo SR2) 但是选择“类文件编辑器”,它仍然会打开旧的“类文件查看器”。怎么了?为什么这么难?
  • @Leo 在 eclipse Juno 中将 *.class without source 编辑器设置为 class file editor。更改 *.class 的设置可能不起作用。
  • @Kshitiz:问题是打开的 .class 文件不在类路径中。请参阅下面的完整答案。
【解决方案2】:

我改用 jadeclipse,因为它在 3.6/3.7 eclipse 中不能工作

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

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

【讨论】:

  • 谢谢,我试过京东,但实际上更新站点的链接坏了。
  • 在尝试并在本文中概述的所有内容都失败后才这样做。 (Eclipse 2.9.2) JAD 更新站点工作正常,安装似乎工作正常
【解决方案3】:

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

我所做的是按照网站的建议和@Universalspezialist 的提醒安装 Microsoft Visual C++ 2008 SP1 Redistributable Package。

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

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

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

【讨论】:

    【解决方案4】:

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

    【讨论】:

      【解决方案5】:

      我做了一件简单的事情来让它工作:

      进入 Eclipse > 窗口 > 首选项

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

      单击“.class”类型。下面有 2 个编辑器,我点击“类文件编辑器”——带有 JD 图标的那个,点击右侧的“默认”按钮。

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

      【讨论】:

        【解决方案6】:

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

        如果您的类位于 .jar 中,您可以简单地将这个 jar 作为另一个库添加到构建路径中。从包资源管理器中浏览您的新库并在类文件编辑器中打开该类。

        如果您想反编译文件系统上的任何类,它必须位于相应的文件夹层次结构中,并且根文件夹必须包含在构建路径中。这是一个例子:

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

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

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

        【讨论】:

        • 最有用的答案。谢谢!
        【解决方案7】:

        只需从京东页面下载该网站。我能够从 Eclipse 安装软件部分的本地站点进行安装。

        【讨论】:

          【解决方案8】:

          要让它在 Eclipse Juno 中工作 - 我必须做一些额外的步骤。

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

          1. 选择“*.class”并将“类文件编辑器”标记为默认
          2. 选择“*.class without source”->添加->“类文件编辑器”->设为默认
          3. 重启eclipse

          【讨论】:

            【解决方案9】:

            适用于 Eclipse 版本 3.x 和 4.x 的 JAD 反编译器插件。

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

            步骤:

            1. 打开 Eclipse IDE。
            2. 点击帮助->安装新软件
            3. 粘贴上面的 URL 并命名为 JAD。
            4. 选择 Eclipse 类反编译器
            5. 点击下一步并接受协议
            6. 安装它。
            7. 重新启动 Eclipse 并立即检查。

            【讨论】:

            • “浏览器无法加载文档”——我差点投反对票。我最终发现我需要将该链接放入 Eclipse 中......本来可以更清楚地说明。我已经安装并工作了,谢谢!也许更好地参考marketplace.eclipse.org/content/jadclipse-eclipse-4x
            • 这与 Spring Tool Suite 3.4 完美配合。对于那些面临 jadclipse 问题的人来说非常有用。
            • 当问题是关于 JD-Eclipse 的时候,你为什么要发布 JADclipse 的安装步骤?
            【解决方案10】:

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

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

            【讨论】:

            • 这个解决方案在 Eclipse Oxygen 上对我有用。我还将“JD Class File Viewer”设置为“*.class without source”的默认值。
            • 此解决方案适用于 Eclipse 2020-03,构建路径技巧是必要的,谢谢!
            • 在 Eclipse 2020-12 上也为我工作
            【解决方案11】:

            如果您需要反编译独立 jar,请尝试使用同一作者(JD-Eclipse)的 JD-GUI。它是一个独立的应用程序(不需要 eclipse)。它可以打开 *.class 和 *.jar 文件。有趣的是,它需要安装 .Net(确实 JD-Eclipse 也是如此),但在其他方面就像一个魅力。

            在这里找到它:

            http://jd.benow.ca/

            问候,

            【讨论】:

              【解决方案12】:

              在Eclipse中添加Java反编译器的步骤:

              1. 打开 Eclipse IDE。
              2. 点击帮助->Eclipse Marketplace 向导
              3. 在 Search 选项卡中找到 JD(JD 是获取 Eclipse 类反编译器的关键字)
              4. 选择Eclipse 类反编译器
              5. 点击安装。
              6. 重启 Eclipse 并检查

              【讨论】:

              • 之前已经对这个问题做出了类似的回答。
              【解决方案13】:

              它应该适用于所有版本的 Eclipse,即使在 Spring 工具套装(STS)中也是如此。 这是步骤

              转到网址 Follow The link to download或点击下方链接直接下载 Click Here to download

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

              启动 Eclipse,

              点击“帮助>安装新软件...”,

              单击“添加...”按钮添加新的存储库,

              输入“JD-Eclipse更新站点”,选择本地站点目录,

              选择提取的文件夹并给出任何名称。我给了JDA。 然后点击确定。

              勾选“Java Decompiler Eclipse Plug-in”,

              下一步,下一步,下一步……然后重新启动 Eclipse。

              【讨论】:

              • 感谢 Varun,这对我有用。但是有些jar没有反编译。有没有办法手动选择一个jar,比如一个maven依赖jar并用jd-gui打开?
              【解决方案14】:
              1. 下载 JD-Eclipse 更新站点(github.com/java-decompiler/jd-eclipse)
              2. 启动 Eclipse,

              3. 点击“帮助>安装新软件...”,

              4. 单击“添加...”按钮添加新的存储库,

              5. 输入“JD-Eclipse更新站点”,选择本地站点目录,

              6. 勾选“Java Decompiler Eclipse Plug-in”,

              7. 下一步,下一步,下一步...并重新启动 Eclipse。

              【讨论】:

                【解决方案15】:

                我使用 Intellij 或 Android Studio 都可以很好地进行反编译。 在 FernFlower Decompiler 之后的内部 Intellij。

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 2015-09-28
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2011-12-14
                  相关资源
                  最近更新 更多