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

Cug*_*uga 8 java ant relative-path absolute-path

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

<exec executable="C:\test\foo\programName.exe" />
Run Code Online (Sandbox Code Playgroud)

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

<exec executable="programName.exe"
  dir="C:\test\foo\" />
Run Code Online (Sandbox Code Playgroud)

我明白了:

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

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

Mad*_*sen 5

添加resolveexecutable属性:

<exec executable="programName.exe" 
  resolveexecutable="true"
  dir="C:\test\foo\" />
Run Code Online (Sandbox Code Playgroud)

resolveexecutable 当此属性为true时,将首先针对基于项目的项目解析可执行文件的名称,如果不存在,则针对执行目录进行解析(如果已指定)。在Unix系统上,如果只想允许用户路径中的命令执行,请将其设置为false。由于Ant 1.6 否,默认为false


Cug*_*uga 3

我最终坚持了这一点:

<exec executable="${basedir}\myexefile.exe}" />
Run Code Online (Sandbox Code Playgroud)