【问题标题】:Attach Source Issue in Eclipse在 Eclipse 中附加源问题
【发布时间】:2008-10-10 15:53:53
【问题描述】:

在 Eclipse (Ganymede) 中,我正在调试一些使用 Apache Commons HttpClient 的代码,并希望进入 HttpClient 代码。我已经下载了源代码并尝试以正常方式附加它(CTRL-单击方法名称并使用附加源按钮)。我尝试将两者都附加为外部文件和外部文件夹,但均未成功。我之前附上源代码没有问题,目前可以成功进入 Hibernate 源代码。

我什至尝试直接编辑 .classpath 文件以手动添加源路径。仍然没有运气。刷新项目、进行干净的构建、关闭并重新打开 Eclipse 并不能解决问题。令人沮丧的是,Eclipse 没有提供错误消息。它只是不附加源。

以下是 .claspath 中的条目:

<!-- Hibernate. Works -->
<classpathentry kind="lib" path="/myEAP/EarContent/APP-INF/lib/hibernate.jar" sourcepath="D:/Data/Download/hibernate-3.2.2.ga/hibernate-3.2/src"/>

<!-- Commons HttpClient. Will not attach -->
<classpathentry kind="lib" path="/myEAP/EarContent/APP-INF/lib/commons-httpclient.jar" sourcepath="D:/Data/Download/commons-httpclient-3.1/src/java"/>

我尝试将路径更改为 D:/Data/Download/commons-httpclient-3.1/src,但也不起作用。

目录结构为:

D
  Data
    Download
      commons-httpclient-3.1
        src
          java
            org
              apache
                commons
                  httpclient
                    AutoCloseInputStream.java
                    ... (and so forth)

【问题讨论】:

  • 您能否重新格式化 .classpath 条目以使其可见(标记后)?

标签: java eclipse eclipse-3.4 ganymede


【解决方案1】:

尝试将其直接指向包含顶级包的目录,“D:/Data/Download/commons-httpclient-3.1/src/java”。对我有用的是创建一个新的 src zip 文件,其中包含“org”文件夹及其下的所有内容。

这是我的 .classpath 条目,(对我有用)以防万一:

<classpathentry kind="lib" path="/blib/java/commons-httpclient-3.1/commons-httpclient-3.1.jar" sourcepath="/blib/java/commons-httpclient-3.1/commons-httpclient-3.1-src.zip"/>

【讨论】:

    【解决方案2】:

    我发现有时,你指向你认为是正确的目录,然后它仍然说它在附加的源代码中找不到文件等等。

    这些时候,我意识到最后一个路径元素是“src”。只需删除此路径元素(因此确实指向“org”或“com”文件夹所在的实际路径上方一层)就可以神奇地使其工作。

    不知何故,Eclipse 似乎暗示了这个“src”路径元素(如果存在),如果您随后将它包含在源路径中,Eclipse 就会阻塞。或者类似的东西。

    【讨论】:

      【解决方案3】:

      尝试附加 src.zip 而不是解压缩的 src?

      【讨论】:

      • 谢谢,我想我可以尝试在 Europa 中打开该项目。
      • 幸运的是,JDK src.zip 文件是随我的 Java 安装自动安装的。 Windows 64 系统上的 src.zip 典型位置是 C:\Program Files\Java\jdk_yourVersion。
      【解决方案4】:

      尝试将其添加到启动配置的源路径中。

      【讨论】:

        【解决方案5】:

        附加源并不是进入类路径上的库所需要的全部;该库还必须使用调试符号进行编译。这通常不是问题,因为大多数 Java 库都是以这种方式编译和分发的,但正如您所发现的,其中一些不是。

        有趣的是,即使没有附加源代码,您实际上也可以进入外部库,只是看不到逐行源代码(所有调试信息仍然有效)。

        您可以通过编译 Commons HttpClient 的自定义版本(不太难)来“解决”这个问题,或者直接跳过整个“步入库”的想法。作为一般的开发实践,进入第三方库很少会产生有用的信息。在过去的十年中,我可能做过一两次,但这两次都没有真正让我更接近解决手头的难题。

        【讨论】:

          【解决方案6】:

          我认为,源存档路径中的空间(或本地化)符号存在问题。尝试用简单的路径将它移动到另一个地方。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-03-25
            • 2013-02-17
            • 1970-01-01
            • 2012-01-22
            • 2011-07-26
            • 2012-04-01
            相关资源
            最近更新 更多