【问题标题】:How can I add build path items to Eclipse 3.5 using relative paths?如何使用相对路径将构建路径项添加到 Eclipse 3.5?
【发布时间】:2010-11-28 11:05:53
【问题描述】:

Eclipse 3.5 添加了对相对构建路径/类路径项的支持,但我似乎找不到添加相对路径项的图形方式。 The example in new and noteworthy (search the page for 'relative', about 40% of the way down) 似乎表明我必须手动编辑 .classpath 文件。我只是错过了什么吗?

2015 年编辑:更新了已删除的链接。为了无限期地保留“新的和值得注意的”,这里是提到的部分的屏幕截图。

【问题讨论】:

  • +1 看来你只能通过破解类路径来做到这一点

标签: eclipse build eclipse-jdt


【解决方案1】:

执行此操作的实际方法是将库导入您的工作区,因此,

在包资源管理器中右键单击 -> 导入 -> 文件系统 -> 浏览(到包含你的 jar 的目录) -> 选中你想要的 jar 旁边的框 -> 浏览到你想要导入到的工作区文件夹(可能是你的 lib 文件夹)-> 完成

请记住,这会将文件复制到 lib 文件夹中,因此我发现如果您还没有它们,它有助于保持干净。它们现在将显示在“lib”下的包资源管理器中。要将它们添加到类路径中,

右键单击项目 -> 构建路径 -> 配置构建路径... -> 添加 JAR -> 导航到给定项目的 lib 文件夹并选择适当的 JAR -> 单击确定 -> 单击完成

这会将它们添加到具有相对位置的 CP。

如果您需要更多帮助,请告诉我

【讨论】:

  • 不完全。我不想将 jars 导入项目,我想通过相对路径引用我的 lib 目录(它们是外部目录和几个父目录),这样任何签出我的项目的人都不必设置变量或环境
  • Eclipse 相对构建路径是相对于项目的。据我所知,让 eclipse 以这种方式实际引用事物的唯一方法是将它们放在项目管理器的项目中。您可能可以使用 .. 之类的运算符来引用其他目录,但我不知道如何以图形方式完成此操作。对不起!
【解决方案2】:

我正在使用 Helios(即 3.6.x),这是我在项目外部以相对方式引用 lib(jar)的方法。

1) 在项目资源管理器中右键单击项目 -> 导入 -> 导入。 2)选择文件系统(下一步)使用浏览按钮导航到文件夹(是的,它看起来像一个硬路径)。选择要包含的 .jar。

我通常在“进入文件夹:”选项中将“\lib”附加到项目名称。

单击“高级”并选择“在工作区中创建链接”,我使用默认选项(均已选中,并且与 PROJECT_LOC 相关)。 3) 点击完成

接下来,打开项目属性并转到 Java Build Path Libraries 选项卡并选择“Add Jars...”并转到 \lib 文件夹(从第 2 步开始)并选择您需要的库。现在,在“库”选项卡上,库的路径为“ProjectName/Lib”。

项目资源管理器将显示一个带有特殊图标的 lib 文件夹。如果您在硬盘驱动器中查找 lib 文件夹,那里什么都没有。所以它指的是外部路径中的库,但将它们包含为“项目”库。

在项目资源管理器中右键单击 jar 文件并执行属性。你应该看到相对路径的好处。

【讨论】:

  • 完美!使用此方法,将创建一个虚拟文件夹来包含您的 jar 文件。 jar 文件本身不被复制,而是保留在其原始位置并使用相对路径(例如<project-location>/../../mylittle.jar)进行引用。
  • 您必须设置 PROJECT_LOC 还是预先定义好的?
【解决方案3】:

简单。没有所有对话框和菜单。

在您的 .project 文件中添加真实文件的路径,如下所示。 我的在 ../libs/GoogleAdMobAdsSdkAndroid-4.1.1/GoogleAdMobAdsSdk-4.1.1.jar
所以我改成了 PARENT-1-PROJECT_LOC/libs/...

<linkedResources>
    <link>
        <name>libs/GoogleAdMobAdsSdk-4.1.1.jar</name>
        <type>1</type>
        <locationURI>PARENT-1-PROJECT_LOC/libs/GoogleAdMobAdsSdkAndroid-4.1.1/GoogleAdMobAdsSdk-4.1.1.jar</locationURI>
    </link>
</linkedResources>

我在 .classpath 中使用

<classpathentry kind="lib" path="libs/GoogleAdMobAdsSdk-4.1.1.jar"/>

作为库的链接

Eclipse 将资源链接到项目并在不复制文件的情况下使用它 就像上面的 Mike Jones 回答一样,但没有任何对话

最适合多个应用程序

【讨论】:

    【解决方案4】:

    这不起作用!

    根据 New and Noteworthy example (path="../../lib/myjar.jar") 编辑 .classpath 以包含相对路径并不困难,但它似乎不像描述的那样工作!

    它似乎是相对于工作区而不是指定的特定项目来解决的,这没有多大用处。有没有其他人发现同样的问题或解决方案?

    【讨论】:

      【解决方案5】:

      我认为您可以以图形方式执行此操作,而不是编辑 .classpath。根据 Eclipse 版本,它类似于:

      右键项目 --> 属性 --> 构建路径 --> 库(选项卡) --> 添加变量

      在我当前的 Eclipse 中使用 Java 项目工作.. ;-)

      【讨论】:

      • 那是为了添加变量而不是直接的相对路径。根本不是所要求的
      • 猜我错过了你的问题的重点。我以为您想更改 .classpath 以添加如下内容: 但使用图形界面。我的坏..
      • @basszero 这正是您所需要的。其中一些变量将为您提供项目目录,您可以使用和引用相对于它的 jar。
      【解决方案6】:

      在评估所有响应并修补 Eclipse 后,如果不手动编辑 .classpath 文件,我看不出有什么办法。

      将此答案标记为已接受表示在 Eclipse 3.5 中无法执行此操作。为 Eclipse 3.6 或 Eclipse 4 祈祷吧。

      【讨论】:

      • 只是想知道:你是如何手动做到这一点的?每当我将 ../name.jar 之类的文件模式放入类路径时,Eclipse 就会出错(即 Galileo)
      • @Matthias:我对 Helios 也有同样的看法。
      【解决方案7】:

      据我所知,您目前只能通过编辑 .classpath 文件来实现这一点。为了通过纯“按钮推送”实现这一点,在选择“添加外部 JAR...”和“添加外部类文件夹...”后弹出的浏览对话框需要类似复选框来指定是否要添加相对或绝对路径。或许这不难补充,但我还没有看到。

      【讨论】:

        【解决方案8】:

        没有。到目前为止,这是不可能的。但你很快就会看到它。继续检查集成构建。

        【讨论】:

          【解决方案9】:

          我通过将库添加到我的项目来完成此操作。因此,在您的项目下创建一个名为“jars”的文件夹,并将所有依赖的 jars 放在那里。

          当您之后配置构建路径时,一切都是相对的。

          【讨论】:

            猜你喜欢
            • 2013-06-02
            • 1970-01-01
            • 2012-08-25
            • 1970-01-01
            • 1970-01-01
            • 2012-04-09
            • 2013-04-25
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多