我不能使用ant exec运行窗口“开始”。 Ant版本1.7.1。
这里是示例build.xml来重新创build问题
<project name="test" basedir="." default="test-target"> <target name="test-target"> <exec executable="start"> <arg line="cmd /c notepad" /> </exec> </target> </project>
当我执行这个构build文件时得到以下错误:
Execute failed: java.io.IOException: Cannot run program "start": Cre ateProcess error=2, The system cannot find the file specified
我的环境是Windows XP,Ant 1.7.1我想从DOS提示符下运行。 我排除任何PATH相关的问题,因为我可以从DOS Promt手动运行“启动cmd / c记事本”。
对于如何解决这个问题,有任何的build议吗?
欢呼声
启动不是一个可执行文件,而是cmd.exe shell的一个内部命令,所以要启动你必须做的事情:
<exec executable="cmd.exe"> <arg line="/c start notepad" /> </exec>
编辑:
为了产生多个窗口,这应该工作:
<target name="spawnwindows"> <exec executable="cmd.exe" spawn="yes"> <arg line="/c start cmd.exe /k echo test1" /> </exec> <exec executable="cmd.exe" spawn="yes"> <arg line="/c start cmd.exe /k echo test2" /> </exec> </target>
但是你提到spawn =“true”不适用于你的环境,为什么?
我的解决方案
<project name="test" basedir="." default="test-target"> <target name="start-init"> <exec executable="where" outputproperty="START"> <arg line="start" /> </exec> </target> <target name="test-target"> <exec executable="${START}"> <arg line="cmd /c notepad" /> </exec> </target> </project>
那么<exec executable="start.exe">
呢? 或者start.bat?
另外, basedir="."
指向? 如果你在你的<exec>
标签之前放置一个<echo message="basedir = ${basedir}"/>
,它是否会打印正确的文件夹(包含“start”程序的文件夹)?
另外,您可以在<exec>
之前添加<echoproperties />
<exec>
来查看所有可见的属性。