Ant exec - cannot run program 'start' CreateProcess error=2

邮差的信 提交于 2019-12-18 07:45:49

问题


I can't run the windows 'start' using ant exec. Ant version 1.7.1.

Here is sample build.xml to recreate the problem

<project name="test"  basedir="." default="test-target">
<target name="test-target">
        <exec executable="start">
            <arg line="cmd /c notepad" />  
        </exec>      
</target>
</project>

getting the following error when I execute this build file:

Execute failed: java.io.IOException: Cannot run program "start": Cre
ateProcess error=2, The system cannot find the file specified

My env is Windows XP, Ant 1.7.1 I am trying to run this from DOS prompt. I rule out any PATH related issues, as I could run 'start cmd /c notepad' from DOS promt manually.

Any suggestions on how to fix this?

cheers a s


回答1:


start is not an executable but is an internal command of the cmd.exe shell, so to start something you'd have to:

<exec executable="cmd.exe">
        <arg line="/c start notepad" />  
    </exec>

EDIT:

For spawning multiple windows, this should work:

<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>

but you mentioned that spawn="true" is not applicable for your environment, why is that?




回答2:


my solution

<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>



回答3:


How about <exec executable="start.exe"> ? Or start.bat ?

Also, where is basedir="." pointing to? If you place a <echo message="basedir = ${basedir}"/> just before your <exec> tag, does it print the correct folder (the one with the "start" program in it)?

Additionally, you could add <echoproperties /> before <exec> to see all visible properties.



来源:https://stackoverflow.com/questions/1920882/ant-exec-cannot-run-program-start-createprocess-error-2

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!