Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 运行Windows BAT的Ant目标,包括更改目录_Java_Ant_Cmd - Fatal编程技术网

Java 运行Windows BAT的Ant目标,包括更改目录

Java 运行Windows BAT的Ant目标,包括更改目录,java,ant,cmd,Java,Ant,Cmd,我有一个Windows BAT文件,如下所示: Z: tool.exe c:\mypath\to\input c:\mypath\to\output \flag1 flag2 也就是说,tool.exe驻留在映射的网络驱动器上。该工具要求EXE从其自己的目录运行(在本例中为Z) 当通过双击或在CMD窗口中运行时,BAT工作正常 我想通过Ant实现自动化。我的尝试是: <target name="go"> <exec executable="cmd">

我有一个Windows BAT文件,如下所示:

Z:
tool.exe c:\mypath\to\input c:\mypath\to\output \flag1 flag2
也就是说,tool.exe驻留在映射的网络驱动器上。该工具要求EXE从其自己的目录运行(在本例中为Z)

当通过双击或在CMD窗口中运行时,BAT工作正常

我想通过Ant实现自动化。我的尝试是:

<target name="go">
    <exec executable="cmd">
        <arg value="/c"/>
        <arg value="runtool.bat"/>
    </exec>
</target>

以及其他研究,我了解以下内容:

  • “Z:”很可能与“cd Z:\”等效
  • 没有“cd.exe”。。。“cd”由Windows CMD shell解释,不能通过“CMD.exe”使用
也就是说,如何在Ant中实现目标?在爪哇


我愿意编写我自己的Ant任务,对目录进行进一步的网络配置,等等(冒着问题过于宽泛的风险,我们正在使用Jenkins,并对那里的想法持开放态度)。

您必须在
exec
任务上指定
dir
属性:

<exec executable="tool.exe" dir="z:">
  <arg value="c:\mypath\to\input"/>
  <arg value="c:\mypath\to\output"/>
  <arg value="flag1"/>
  <arg value="flag2"/>
</exec>

这对我很有用:

<target name="go">      
    <property name="batFileDir" location="${basedir}/resources" />

    <exec executable="cmd" dir="." spawn="false">
        <arg line="/C start ${batFileDir}/runTool.bat"/>
    </exec>                
</target>


其中runTool.bat如问题中所述,位于~/resources中。

谢谢,但不起作用。。。收到此消息:Execute failed:java.io.IOException:无法运行程序“tool.exe”(在目录“z:\”):CreateProcess error=2,系统找不到指定的文件如果
tool.exe
不在路径上,请尝试将完整路径放入可执行文件属性(
executable=“c:\path\to\tool.exe”
)。