ANT Execute failed: java.io.IOException: Cannot run program "cp ": java.io.IOException: error=2, No such file or directory

12,455

You have a space after the cp command:

<exec executable="cp " os="Linux" spawn="yes">

That's telling it run a command called "cp " (with the space). This is confirmed by the error message:

Cannot run program "cp "

In fact, the answer is in the subject of the question :)

Take the space out, it should be fine:

<exec executable="cp" os="Linux" spawn="yes">
Share:
12,455

Related videos on Youtube

Frank Fu
Author by

Frank Fu

Updated on June 04, 2022

Comments

  • Frank Fu
    Frank Fu almost 2 years

    I'm trying to use ANT to copy files from one directory to another directory on Linux.

    Firstly I used copy task, it works fine but the file mode is not preserved. Then I changed to use , and that's where I got stuck.

    My target is like:

    <target name="test">
        <echo message="${basedir}"/>
        <exec executable="cp " os="Linux" spawn="yes">
            <arg line="-p"/>
            <arg line="/tmp/jmap.dat"/>
            <arg line="/tmp/jmap.dat1"/>
        </exec>
    </target>
    

    The output I got is: test: [echo] /Users/bpel/mywork/projects/bpel-psr/utils

    /utils/build.xml:38: Execute failed: java.io.IOException: Cannot run program "cp ": java.io.IOException: error=2, No such file or directory

    I also tried something like:

    <exec executable="cp -p /tmp/jmap.dat /tmp/jmap.dat1"/>
    

    and it doesn't work either, it seems cannot find cp command, but if I manually run cp -p /tmp/jmap.dat /tmp/jmap.dat1, it just works fine.

    I've been googling around and found no help.

    The similiar question on stackoverflow doesn't solve my problem: