【问题标题】:How can I link source to a jar package in eclipse?如何将源链接到 Eclipse 中的 jar 包?
【发布时间】:2012-01-17 06:46:57
【问题描述】:

如何在 Eclipse 中将源链接到 jar 包?

我正在尝试添加外部库ch.ntb.usb

我将 jar 文件添加到我的构建路径中,但是当我尝试运行应用程序时,它返回了以下错误:

jar 文件 ch.ntb.usb 没有源附件。

我用JD-GUI反编译了jar文件,里面有源代码。

【问题讨论】:

  • a) 如果 jar 文件包含源代码,则无需反编译即可获取源代码。你的意思是“解压缩(:= jar -xf FILE.jar)”和“反编译”吗? b) 您不需要源代码来使用 jar 运行程序 - 但 IDE 可能需要它来提供工具提示、包含帮助或调试(单步执行代码)。
  • 是的,也许我的意思是解压缩....无论如何,在解压缩 jar 文件后,我用 jd-gui “保存所有源”到我的构建路径中作为 ch.ntb.usb.src。然后我将外部库的源附件设置为ch.ntb.usb.src。这解决了它。感谢您的回复/输入。
  • 将此作为自我回答。它可能看起来有点可疑,但让其他人知道你的问题得到了一个有效、有用的答案真的很有帮助。找到,更重要的是,回来报告它,意味着,你应得的,它被用来练习(搜索元,如果你不相信我 - 也许是常见问题解答)。

标签: java eclipse attachment


【解决方案1】:

我怀疑当你只运行项目时你会得到这个错误,除非你的代码中有错误,并且 Eclipse 调试器会尝试显示导致异常的代码行,无论如何你可能需要一个库的源文件来进行调试目的,将源链接到 Eclipse 中的 jar 包,您可以按照以下简单步骤操作:

  • 在 Package Explorer 的 Referenced Libraries 下找到要添加源的包
  • 右键单击库
  • 选择属性
  • 转到 Java 源附件
  • 选择您的源文件所在的目录或存档。

【讨论】:

  • 感谢您,按照说明进行操作。我已经克隆了 repo 并添加了。但是 Open Declaration 将我带到 .class 文件而不是 .java 。你能澄清一下吗?
  • 谢谢哥们。我一直在寻找这个大约一个小时!
【解决方案2】:

解压缩 jar 文件后,我使用 jd-gui “保存所有源”到我的构建路径中,为 ch.ntb.usb.src。然后我将外部库的源附件设置为ch.ntb.usb.src。这解决了问题。

【讨论】:

  • 为了澄清:有时只有.class 文件存在于 jar 文件中。所以你需要以某种方式获取源代码,一种方法是从提供相关库的人那里获取它(即在他们的 SVN 或 GIT 源代码仓库中)。您在这里所做的真正技巧(不确定您是否意识到您这样做了:])是在 jd-gui 上执行“保存所有源”时,它实际上 为您创建了 java 文件 :)
  • 请注意,当您使用反编译器“创建 java 文件”时,这些创建的 .java 类中不会出现 cmets。因此,在调试时,调试器可能无法正确同步(即,当实际执行第 100 行时,它会指示您正在执行第 120 行)。因此,如果你能获得真正的源代码(包括 cmets)总是更好
【解决方案3】:

我知道现在已经很晚了,但它会对其他用户有所帮助,因为我们可以使用三种方式来完成工作......如下所示
1)1.使用
附加您的源代码,即右键单击项目然后属性 --> Java 构建路径 --> 在源选项卡中附加您的源代码,或者您可以删除 jar 文件并在库选项卡中附加源代码
2. 使用eclipse源码分析器
在eclipse市场可以下载插件java源码分析器,用于附加开源jar文件的源码。我们可以在安装插件后实现它,通过右键单击开源jar并选择附加源选项。
3.在eclipse中使用Jadclipse你可以做到
最后,你可以使用这个插件实现反编译你的代码。它与您可以从 eclipse 市场下载插件并安装在您的 eclipse 中的方式类似。 在 jadclipse 视图中,您可以看到要反编译源格式的 .class 文件注意这里您看不到注释和隐藏的东西

【讨论】:

    【解决方案4】:
    1. 在您的项目包资源管理器中单击右键
    2. 选择属性
    3. 选择安卓
    4. 向下滚动
    5. 在库下单击添加
    6. 选择需要的库并按确定

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-19
      • 2012-10-06
      • 1970-01-01
      • 2023-03-23
      • 2012-10-23
      • 2011-10-07
      • 1970-01-01
      相关资源
      最近更新 更多