【问题标题】:How to import external library by relative path in eclipse?如何在eclipse中通过相对路径导入外部库?
【发布时间】:2011-02-12 19:25:36
【问题描述】:

我使用绝对路径导入了外部库。但我有两个工作环境,在 Linux 和 Windows 之间切换。项目从 SVN 下载。所以我想知道我是否可以通过相对路径导入这些库。

【问题讨论】:

    标签: eclipse


    【解决方案1】:

    您应该声明一个变量(Java 构建路径 -> 添加变量... -> 配置变量... -> 新建)来设置每个系统上的更改路径(例如 FOO_BAR_HOME)。

    您可以将变量添加到库中并对其进行编辑以指向您的库,例如

    %FOO_BAR_HOME%/lib/foobar.jar
    

    查看现有变量的使用情况。

    或者,您可以将库放在项目中(例如子文件夹“lib”)。如果您从该位置添加库(“添加罐子...”而不是“添加外部罐子...”),它将通过相对路径添加。

    【讨论】:

    • 感谢 Claszen。我使用“添加罐子”而不是“外部罐子”。它有效。
    • 需要用到变量idea,但是不知道怎么用。当我在我的一个外部库上单击 Edit... 时,我得到一个 Finder 窗口(我在 OSX Lion 上),它允许我导航到我的 jar,但没有任何东西可以让我编辑该路径以使用我的变量.有什么想法吗?
    • @FrVaBe 还有一个发现:除了添加然后编辑一个变量,还可以点击“Add Variable...”然后“Extend...”添加一个库少了一步(我知道,谁在乎,对吧?我正在添加一长串库,所以它有点帮助。:P)
    • @FrVaBe 我可以添加 Vairable,但不能编辑外部 jar 的路径。我如何使它类似于:%FOO_BAR_HOME%/lib/ACTIVEMQ.jar
    • 我在 Windows 和 Eclipse 中工作时遇到了同样的问题。我尝试手动编辑 .classpath 文件,但在构建路径中它 a) 一直将项目文件夹与路径连接 b) 甚至没有解析变量的值并在连接的字符串中使用 %FOO_BAR_HOME% 。我终于按照wikihow.com/Add-JARs-to-Project-Build-Paths-in-Eclipse-(Java) 此处描述的方式通过扩展变量并选择罐子来使其工作。结果是 kind="var" path="FOO_BAR_HOME" 行,下面还有几个类似的变量行
    【解决方案2】:

    嘿,我也遇到了这个问题,但我可以为那些想要本地在外部保留所需库的人提供替代解决方案strong> Java 项目的目录。

    首先,使用通常的“添加外部库/Jar”方法添加您想要的库。

    如果您进入 Java 项目的主目录,您应该会看到一个 .classpath 文件。使用您希望的任何文本编辑器进行编辑,并查找引用您添加的库的行。然后,假设您的库名为 lib.jar,并且您在项目之外拥有它的一层。

    假设这条线说:

    <classpathentry kind="lib" path="C:/Users/Public/workspace/lib.jar"/>

    您可以将这一行更改为:

    <classpathentry kind="lib" path="./../lib.jar"/>

    并且您的 Java Build 路径将更新为在当前项目的上一级目录中查找它。

    另外,据我所知,如果您运行的是 Mac 或任何基于 Unix 的操作系统,那么 .classpath 文件将被隐藏。为了访问它,您可以尝试从终端打开它,方法是导航到您的 Java 项目使用的目录(实际的项目文件夹本身,而不是工作区),然后是 vi 或 vim ".classpath"。请记住,使用 ls 甚至 ls -a 可能不起作用,但相信它会在那里。

    将其更改到指定位置后,保存文件,当您返回 Eclipse 时,该引用应该仍然有效。请记住,开头的"./" 是必要的。仅仅拥有"../" 是行不通的,或者至少对我没有用。

    【讨论】:

    • 在我的 .classpath 中有 8 个条目都是相对的并且位于项目的主文件夹之上,在开始时使用“../”时只有一些工作。在开头使用“./../”可以使它们都起作用。非常混乱。感谢@aljo 的提示
    【解决方案3】:

    我做的很简单。我的类路径中有一个绝对路径的库:

    /home/glauco/workspace/ltClubs/lib/swingx-core-1.6.2.jar
    

    所以我只是从中删除了绝对路径,它就可以工作了。现在是相对的 xD:

    lib/swingx-core-1.6.2.jar
    

    【讨论】:

    • 当我使用ant 命令构建时,这对我有用。但是当我从 eclip 运行它时,我得到一个错误,说它找不到库
    【解决方案4】:

    这应该是对上一个答案的评论,但是这个网站奇怪的声誉系统迫使我发布一个新的答案......(没有 cmets)

    您可以使用相对路径,但其中缺少“./”。

    代替

    lib/swingx-core-1.6.2.jar
    

    你应该使用

    ./lib/swingx-core-1.6.2.jar
    

    【讨论】:

      【解决方案5】:

      将包含依赖项的文件夹添加到 JAVA 项目中。选择并右键单击依赖项,“添加到构建路径”作为上下文菜单弹出。这使用相对路径而不是绝对路径添加依赖项。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-06-02
        • 2018-11-08
        • 1970-01-01
        • 2010-11-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-01-07
        相关资源
        最近更新 更多