Java 我可以在ant构建脚本中设置执行的相对路径吗?

Java 我可以在ant构建脚本中设置执行的相对路径吗?,java,ant,Java,Ant,我的ant脚本中有以下几行 exec executable="$"c:\devTools\Tool.exe" failonerror="true" /exec 我想给出Tool.exe的相对路径,而不是绝对路径。 我能做吗?怎么做 谢谢 相对于什么?您可以找到当前build.xml所在的目录 <project name="projectname" default="runtests" basedir="."> .. <dirname property="my.proj

我的ant脚本中有以下几行

exec executable="$"c:\devTools\Tool.exe" failonerror="true" /exec
我想给出Tool.exe的相对路径,而不是绝对路径。 我能做吗?怎么做


谢谢

相对于什么?您可以找到当前build.xml所在的目录

 <project name="projectname" default="runtests" basedir=".">
  ..
 <dirname property="my.projectname.basedir" file="${ant.file.projectname}"/>

..

然后使用my.projectname.basedir到另一个位置。

只需使用可选的
${basedir}
属性,默认情况下,“.”表示ant脚本所在的目录。然后将可执行文件放在与
${basedir}

如果basedir属性设置为另一个路径,则属性
${user.dir}
将保存ant脚本所在的目录。

还可以使用
查看默认设置了哪些属性。

通常会设置我的环境路径,我使用以下代码克服了此问题:

<exec dir="" executable="program.exe" searchpath="true" >


参数searchpath可以解析可执行文件的位置。

请提供更多信息…这可能会有帮助-。我认为这是不可能的,因为Ant任务是从build.xml文件所在的位置执行的。如果Tool.exe可执行文件与build.xml位于同一文件夹中,则可以忽略绝对路径,只需键入可执行文件的文件名。也许,您可以将可执行文件的路径附加到Windows环境变量
path
中。通过这样做,您可以仅从任何文件夹按文件名调用可执行文件。类似地,您也可以在build.xml中执行同样的操作,我将其更改为只对build目录使用${user.dir}。xml@Rebse:user.dir=>用户当前的工作目录(当JVm启动时)…ant从哪个目录启动。@Rebase:这会使它不可预测。例如,从不同的目录调用相同的构建xml将给出不同的值。我的解决方案在某种程度上是固定的,即构建文件的实际位置。