【问题标题】:Is there an easy way to attach source in Eclipse?有没有一种简单的方法可以在 Eclipse 中附加源代码?
【发布时间】:2010-09-12 10:30:24
【问题描述】:

我非常喜欢 Visual Studio 在完成您编写的代码和您正在引用的代码(各种库/程序集)时为您提供注释文档/参数名称的方式。

在完成代码或将鼠标悬停在方法上时,是否有一种简单的方法可以在 Eclipse 中获取内联 javadoc/参数名称?通过插件?通过一些设置?使用大量库(在 Java 中经常发生)然后必须去网站或本地 javadoc 位置查找源 jar 中的信息,这是非常烦人的!

【问题讨论】:

标签: java eclipse


【解决方案1】:

简短的回答是肯定的。

您可以使用项目的属性附加源代码。

转到属性(用于项目)-> Java 构建路径-> 库

选择您要附加源/javadoc 的库,然后展开它,您会看到如下列表:

Source Attachment: (none)
Javadoc location: (none)
Native library location: (none)
Access rules: (No restrictions)

选择 Javadoc 位置,然后单击右侧的编辑。从那里开始应该很直接。

祝你好运:)

【讨论】:

  • 您当然应该注意,如果您有要附加的实际源,您也可以对源附件部分执行相同的操作。然后你得到Javadoc,如果你愿意,你可以直接查看实际源代码。
  • 我认为这是附加源代码的艰难而痛苦的方式。每次在使用 jar 的每个项目中包含 jar 文件时,都需要这样做。当你有很多 jars 和很多项目时,那就不好了。
  • 这个答案的投票太多了! 5 年改进后的答案是 mentioned java source attacher,它真的很适合“一种简单的方法”。
  • 当我们在库中有“不可修改”时该怎么办?
【解决方案2】:

直到昨天,我都在苦苦下载大量 jar 的源 zip 并为每个项目手动附加它们。然后一位同事把我转到The Java Source Attacher。它做了 eclipse 应该做的事情——一个右键单击上下文菜单,上面写着“附加 Java 源”。

它会自动为您下载源代码并将其附加。我只访问了几个它不知道的库,当发生这种情况时,它可以让您将 url 回馈给社区,这样其他人就不会对该库有任何问题。

【讨论】:

  • 它可以工作,但是有什么简单的方法可以从您正在检查的方法中获取它来自 Project Explorer 的 jar 吗?
  • 请注意,.jar 文件并未保存在您的项目文件夹中,因此如果您与他人合作,您的.classpath 将无法移植。
【解决方案3】:

一个简单的方法是:

  1. 下载相应的 SRC 文件/文件夹。

  2. 在 Eclipse 编辑器中,按住 Ctrl+单击或 F3 键单击您需要源代码的方法/类。将打开一个新选项卡,其中显示“未找到附加源”。

  3. 点击“附加源”按钮,点击“附加源文件夹”按钮,浏览到下载的SRC文件夹所在位置。完成!

(p.s :按钮标签可能略有不同,但差不多就是这样。)

【讨论】:

    【解决方案4】:

    1) 按住 Control+左键单击您想查看的方法。然后 Eclipse 会将您带到 Source Not Found 页面。

    2) 点击“附加源”

    3)

    4) 导航到 C:\Program Files\Java\jdk-9.0.1\lib\src.zip

    5) 点击确定 现在您应该看到源代码。

    【讨论】:

      【解决方案5】:

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

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

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

      【讨论】:

      • 我有同样的问题:源位于一个名为“source”的目录中(“org”等所在的位置),但我无法让 Eclipse 在 Ctrl+单击方法时使用它姓名。相反,我得到了字节码视图。我尝试将其名称更改为“src”,使用“org”作为目录,或者使用“源”上方的目录,但没有任何变化......
      • 我不相信 Eclipse 假定 src 是路径的一部分。只需选择包含以包的*域名命名的文件夹的文件夹。
      • @broiyan:有趣的是你不相信,当我刚刚说这是我经验上,身体上的经验! :-)
      【解决方案6】:

      是的,有一个简单的方法...转到 ...http://sourceforge.net/projects/jdk7src/ 并下载 zip 文件。然后将其附加到日食。给出您在 Eclipse 中下载 zip 文件的路径。然后我们可以浏览源代码。

      【讨论】:

        【解决方案7】:

        当您将 jar 文件添加到类路径时,您可以将源目录或 zip 或 jar 文件附加到该 jar。在 Java Build Path 属性的 Libraries 选项卡上,展开 jar 的条目,您将看到源附件的项目。选择此项,然后单击编辑按钮。这使您可以选择包含源代码的文件夹、jar 或 zip。

        此外,如果您在 jar 中选择一个类或方法并在其上按 CTRL+CLICK(或按 F3),那么您将进入字节码视图,其中包含附加源代码的选项。

        执行这些操作将为您提供所有参数名称以及完整的 javadoc。

        如果您没有源代码但有 javadoc,您可以通过第一种方法附加 javadoc。如果您没有下载它,它甚至可以引用外部 URL。

        【讨论】:

          【解决方案8】:
          1. 点击你想看的JAVA代码。 (如果要查看 java.util.List 的源代码,请单击 List 打开 List.java)
          2. 点击“附加源”按钮。
          3. 系统将要求您“选择包含 rt.jar 源的位置(文件夹、JAR 或 zip)。
          4. 选择“外部位置”选项。找到 src.zip 文件。
          5. src.zip 的路径是:*\Java\jdk1.8.0_45\src.zip

          【讨论】:

            【解决方案9】:
            1. 将源文件放入一个 zip 文件(就像对 java 源文件所做的那样)
            2. 转到项目属性 -> 库
            3. 选择源附件并点击“编辑”
            4. 在源附件配置中单击“变量”
            5. 在“变量选择”上单击“新建”
            6. 输入一个有意义的名称并选择在步骤 1 中创建的 zip 文件

            【讨论】:

              【解决方案10】:

              另一个选项是右键单击您的 jar 文件,该文件位于 (Your Project)->Referenced Libraries->(your jar) 下,然后单击属性。然后单击 Java 源附件。然后在位置路径中放入源 jar 文件的位置。

              这只是附加源文件的另一种方法。

              【讨论】:

                【解决方案11】:
                【解决方案12】:

                如果您使用 gradle 构建库,您可以将源附加到您创建的 jar 中,然后 eclipse 将自动使用它们。请参阅@MichaelOryl How to build sources jar with gradle 的答案。

                复制到这里供您参考:

                jar {
                    from sourceSets.main.allSource
                }
                

                显示的解决方案适用于 gradle java 插件。如果您不使用该插件,里程可能会有所不同。

                【讨论】:

                  【解决方案13】:

                  在使用自动构建时更容易做到这一点的另一个想法:

                  当您创建一个项目的 jar 时,还要创建一个源文件 jar:
                  项目.jar
                  项目-src.jar

                  不要进入构建路径选项对话框为每个 jar 添加源引用,尝试以下操作:通过对话框添加一个源引用。编辑您的 .classpath 并使用第一个 jar 条目作为模板,将源 jar 文件添加到其他每个 jar。

                  通过这种方式,您可以充分利用 Eclipse 的导航辅助工具,同时仍然使用更独立的东西来构建您的项目。

                  【讨论】:

                    【解决方案14】:

                    我打算寻求一种替代方法,以将源附加到跨多个项目使用的同一个 JAR。最初,我认为唯一的选择是重新构建包含源的 JAR,但查看“用户库”功能,您不必使用源构建 JAR。

                    当您有多个项目(相关或不相关)引用同一个 JAR 时,这是一种替代方法。为每个 JAR 创建一个“用户库”并将源附加到它们。下次您需要特定 JAR 时,不要使用“添加 JAR...”或“添加外部 JAR...”,而是添加您之前创建的“用户库”。

                    您只需为每个 JAR 附加一次源代码,就可以将其重新用于任意数量的项目。

                    【讨论】:

                      【解决方案15】:

                      对于那些正在编写 Eclipse 插件并希望包含源代码的人... 在功能 ExportWizard 中有一个包含源的选项:

                      【讨论】:

                        【解决方案16】:

                        只需单击附加源并选择文件夹路径...名称将与文件夹名称相同(在我的情况下)。记住一件事,您需要选择项目文件夹基本位置的路径,后缀为“\”,例如 D:\MyProject\

                        【讨论】:

                          【解决方案17】:

                          这看起来有点矫枉过正,但如果您使用 maven 并包含源代码,mvn eclipse 插件将生成所需的所有源代码配置,从而为您提供您可能要求的所有内联文档。

                          【讨论】:

                          • 但除此之外,它还需要对您的正常 Eclipse 构建系统进行大锤,粉碎任何过去的工作。
                          最近更新 更多