管道的蚂蚁运行命令
问题内容:
我必须java -jar test.jar page.xml | mysql -u user -p base
在ant中执行command:所以我尝试了这个任务:
<java jar="test.jar" fork="true">
<arg line="page.xml | mysql -u user -p base"/>
</java>
但是我对管道有个异议-“ |” :
java.lang.IllegalArgumentException: Input already set; can't set to |
所以,这就是问题所在:)
问题答案:
管道(|)仅可用于Shell脚本。您将其作为参数传递给Java进程。
因此,您需要执行一个Shell脚本。您可以通过执行(说)bash -c
并将上面的内容作为shell语句传递来做到这一点(尽管是 内联的
,您可以编写一个单独的脚本文件,但这似乎有点麻烦)
<exec executable="bash">
<arg value="-c"/>
<arg line="java -jar test.jar page.xml | mysql -u user -p base"/>
</exec>