我正在尝试使用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无法解决我的问题:
答案 0 :(得分:4)
cp
命令后面有空格:
<exec executable="cp " os="Linux" spawn="yes">
这告诉它运行一个名为"cp "
的命令(带空格)。这由错误消息确认:
无法运行程序
"cp "
事实上,答案在于问题的主题:)
取出空间,应该没问题:
<exec executable="cp" os="Linux" spawn="yes">