我必须执行命令:java -jar test.jar page.xml | mysql -u 用户 -p 基础
在 Ant 。所以我已经尝试过这个任务:
<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 语句传递来做到这一点(尽管 inline - 您可以编写一个单独的脚本文件,但它似乎有点这里的开销)
<exec executable="bash">
<arg value="-c"/>
<arg line="java -jar test.jar page.xml | mysql -u user -p base"/>
</exec>
关于java - 带管道的 Ant 运行命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1187402/