2009-05-22 118 views
7

我在我的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,系统 找不到指定的文件ied

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

+0

'C:\测试\富' 是不是相对路径。您可能需要更正问题。 – Gleb 2009-05-22 21:58:40

回答

2

我结束了与此坚持:

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

试试这个:

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

看来,从您执行程序的目录必须是在你的构建路径。

4

添加resolveexecutable属性:

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

resolveexecutable当此 属性为true,则 可执行文件的名称首先对 项目BASEDIR解决,如果这样做 不如果指定,则执行 目录。在Unix 系统上,如果您只想允许 执行用户的 路径中的命令,请将其设置为false。因为蚂蚁1.6 没有,默认为false