Java Eclipse:将环境变量用于外部jar位置

Java Eclipse:将环境变量用于外部jar位置,java,eclipse,jar,environment-variables,buildpath,Java,Eclipse,Jar,Environment Variables,Buildpath,在谷歌搜索了几个小时后,我问你: 情况: 我的Eclipse项目使用“nedded.jar”,所以我将其添加到构建路径中。没问题 C:/dev/development/my_needed/nedded.jar 但是“nedded.jar”的位置是相对于环境变量DEVELOPMENT(=C:/dev/DEVELOPMENT/)的,因此可能会发生变化。因此,我需要引用的库路径为: %DEVELOPMENT%/my\u needed/nedded.jar 我找不到实现这一点的语法。想法 编辑:

在谷歌搜索了几个小时后,我问你:

情况:

我的Eclipse项目使用“nedded.jar”,所以我将其添加到构建路径中。没问题

  • C:/dev/development/my_needed/nedded.jar
但是“nedded.jar”的位置是相对于环境变量DEVELOPMENT(=C:/dev/DEVELOPMENT/)的,因此可能会发生变化。因此,我需要引用的库路径为:

  • %DEVELOPMENT%/my\u needed/nedded.jar
我找不到实现这一点的语法。想法

编辑:

也许我没有说清楚:这个项目是由MSVisualStudio(C++)和Eclipse(Java)开发的。两者都是从控制台启动的。先前执行的脚本设置了3个主要变量:开发、运行时、特定源、更改路径

如果我从这个shell启动Eclipse,那么外部libs的路径将由%DEVELOPMENT%\my\u needed\nedded.jar定义

我找到了一个折中的解决方案(在某处):添加了一个新文件夹-->高级-->链接到备用位置(链接文件夹)

这会在您的.project中添加一个条目,我在签出项目时也会获得该条目:

<linkedResources>
   <link>
   <name>lib/RXTXcomm.jar</name>
   <type>1</type>
     <locationURI>PARENT-4-PROJECT_LOC/Development/rxtx/RXTXcomm.jar</locationURI>
   </link>
</linkedResources>

lib/RXTXcomm.jar
1.
PARENT-4-PROJECT_LOC/Development/rxtx/RXTXcomm.jar
到目前为止还不错,但它仍然不依赖于%DEVELOPMENT%。我需要的是: %DEVELOPMENT%/rxtx/RXTXcomm.jar


希望现在更清楚。

我认为您应该能够使用

${workspace_loc} 

${resource\u loc//文件夹…}

您应该声明一个变量(Java构建路径->添加变量…->配置变量…->新建)来设置每个系统上的更改路径(例如FOO\u BAR\u HOME)

然后,您可以将变量添加到“库”部分,并对其进行编辑以指向您的库,如:

%FOO\u BAR\u HOME%/lib/foobar.jar

查看现有变量的用法


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

我也在用ant搜索这个问题的答案。似乎您可以像这样引用windows环境变量

<property environment="env"/>


提供所有环境变量作为以“env”为前缀的Ant属性。例如,类路径在Ant中可以作为${env.CLASSPATH}访问。

您是否阅读了“是,否”帮助,因为我不想引用Eclipse内部环境变量。“${env_var}”只能在运行/调试配置中使用。在ant脚本中,我可以引用“.我想将项目签出到文件系统中的任何位置,设置环境变量,启动Eclipse,导入项目,瞧:所有外部lib都是自动找到的!Helpfull方法:,+1帮助我。这里有一些要添加的内容(至少对于Eclipse 3.6.2)…在添加FOO\u BAR\u HOME变量后,您可以编辑项目的Java构建路径。从“库”选项卡中,单击“添加变量”,选择FOO\u BAR\u HOME变量,然后单击“扩展”按钮。然后,导航到jar文件并选择它。您的.classpath文件将以相对于FOO\u BAR\u HOME变量的路径结束。
<property environment="env"/>