8

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

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

4

3 回答 3

5

添加resolveexecutable属性:

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

resolveexecutable 当此属性为 true 时,可执行文件的名称首先根据项目 basedir 解析,如果不存在,则根据指定的执行目录解析。在 Unix 系统上,如果您只想允许执行用户路径中的命令,请将其设置为 false。从 Ant 1.6 开始 没有,默认为 false

于 2009-05-23T02:15:22.313 回答
3

我最终坚持了这一点:

<exec executable="${basedir}\myexefile.exe}" />
于 2009-05-28T12:22:41.037 回答
1

试试这个:

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

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

于 2009-05-22T22:05:09.777 回答