使用Ant执行绝对路径而不是相对路径

时间:2009-05-22 21:48:36

标签: java ant relative-path absolute-path

我的Ant脚本中有以下代码段。它执行得很好:

<exec executable="C:\test\foo\programName.exe" />

但是当我尝试通过设置目录来执行它时,如下所示:

<exec executable="programName.exe"
  dir="C:\test\foo\" />

我明白了:

  

执行失败:java.io.IOException:   无法运行程序“programName.exe”   (在目录“C:\ test \ foo”中):   CreateProcess error = 2,系统   找不到指定的文件

请帮忙!为什么单独指定目录时它不起作用?

3 个答案:

答案 0 :(得分:4)

添加 resolveexecutable 属性:

<exec executable="programName.exe" 
  resolveexecutable="true"
  dir="C:\test\foo\" />
  

resolveexecutable 当这个   属性为true,名称为   首先解决可执行文件   项目基础,如果有的话   不存在,反对执行   目录如果指定。在Unix上   系统,如果你只想允许   在用户的执行命令   path,将其设置为false。自从Ant 1.6开始     不,默认为false

答案 1 :(得分:2)

我最后坚持这个:

<exec executable="${basedir}\myexefile.exe}" />

答案 2 :(得分:1)

试试这个:

<property name="prog.dir" value="C:/test/foo" />
<exec executable="${prog.dir}/programName.exe"/>

执行程序的目录似乎必须在构建路径中。