ANT执行失败:java.io.IOException:无法运行程序“cp”:java.io.IOException:error = 2,没有这样的文件或目录

时间:2010-07-12 22:05:07

标签: linux ant exec

我正在尝试使用ANT将文件从一个目录复制到Linux上的另一个目录。

首先我使用了复制任务,它工作正常,但不保留文件模式。 然后我改用了,这就是我卡住的地方。

我的目标是:

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

我得到的输出是: 测试:      [echo] / Users / bpel / mywork / projects / bpel-psr / utils

  

/utils/build.xml:38:执行失败:   java.io.IOException:无法运行   程序“cp”:java.io.IOException:   error = 2,没有这样的文件或目录

我也尝试过这样的事情:

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

并且它也不起作用,似乎找不到cp命令,但是如果我手动运行cp -p /tmp/jmap.dat /tmp/jmap.dat1,它就可以正常工作。

我一直在谷歌上搜索,没有找到任何帮助。

similiar question on stackoverflow无法解决我的问题:

1 个答案:

答案 0 :(得分:4)

cp命令后面有空格:

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

这告诉它运行一个名为"cp "的命令(带空格)。这由错误消息确认:

  

无法运行程序 "cp "

事实上,答案在于问题的主题:)

取出空间,应该没问题:

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