我使用绝对路径导入外部库。但我有两个工作环境,并在Linux和Windows之间切换。项目从SVN下载。所以我想知道我是否可以通过相对路径导入这些库。
谢谢
答案 0 :(得分:48)
您应该声明一个变量(Java Build Path - > Add Variable ... - > Configure Variable ... - > New)来设置每个系统上的更改路径(例如FOO_BAR_HOME)。
您可以将变量添加到库中,然后将其编辑为指向库,例如
%FOO_BAR_HOME%/lib/foobar.jar
查看现有的变量以供使用。
备选方案,您可以将库放在项目中(例如子文件夹'lib')。如果您从此位置添加库('添加Jars ...'NOT'添加外部JAR ...'),它将按相对路径添加。
答案 1 :(得分:6)
嘿,我也遇到了这个问题,但我可以为那些想要在本地保留所需库 但 在 之外的人提供替代解决方案strong> Java项目的目录。
首先,使用通常的“添加外部库/ Jar”方法添加所需的库。
如果您进入Java项目的主目录,您应该看到.classpath
文件。使用您希望的任何文本编辑器进行编辑,并查找引用您添加的库的行。然后,假设您的库名为lib.jar
,并且您在项目之外有一个级别。
让这条线说:
<classpathentry kind="lib" path="C:/Users/Public/workspace/lib.jar"/>
您可以将此行更改为:
,而不是将lib.jar
移动到项目目录中。
<classpathentry kind="lib" path="./../lib.jar"/>
将更新您的Java Build路径,以便在当前项目上一级目录中查找它。
另外,据我所知,如果您运行的是Mac或任何基于Unix的操作系统,则会隐藏.classpath文件。要访问它,您可以尝试从终端打开它,导航到Java Project使用的目录(实际项目文件夹本身,而不是工作区),然后导航到vi或vim ".classpath"
。请记住,使用ls甚至ls -a可能不起作用,但相信它会在那里。
一旦你将它改为指定位置,保存文件,当你回到eclipse时,引用应该仍然有效。请记住,开头的"./"
是必要的。仅仅"../"
不起作用,或者至少不适合我。
答案 2 :(得分:4)
我做得很简单。我的类路径中有一个绝对路径的lib:
/home/glauco/workspace/ltClubs/lib/swingx-core-1.6.2.jar
所以我只是删除了它的绝对路径并且它有效。现在它是相对的xD:
lib/swingx-core-1.6.2.jar
答案 3 :(得分:3)
这应该是对前一个答案的评论,但是这个网站的奇怪声誉系统迫使我发布一个新答案......(没有评论)
你可以使用相对路径,但是你错过了&#39; ./'在它。
而不是
lib/swingx-core-1.6.2.jar
你应该使用
./lib/swingx-core-1.6.2.jar
答案 4 :(得分:0)
将包含依赖项的文件夹添加到JAVA项目中。选择并右键单击依赖项,&#34;添加到构建路径&#34;弹出作为上下文菜单。这会使用相对路径而不是绝对路径添加依赖项。