Java 使用Ant执行可以使用绝对路径,但不能使用相对路径

Java 使用Ant执行可以使用绝对路径,但不能使用相对路径,java,ant,relative-path,absolute-path,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”中):

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

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

尝试以下操作:

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


执行程序的目录似乎必须位于生成路径中。

添加resolveexecutable属性:

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

当 属性为true,则为 可执行文件首先根据 项目basedir,如果是 不存在,反对执行 目录(如果指定)。在Unix上 系统,如果您只想允许 在用户界面中执行命令 路径,将其设置为false。从Ant 1.6开始 否,默认值为false


我最终坚持这样做:

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


“C:\test\foo”不是相对路径。您可能需要更正此问题。已编辑。最后,我需要它来处理相对路径。这不起作用的事实让我很震惊。