java - 带管道的 Ant 运行命令

标签 java ant

我必须执行命令: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/

相关文章:

java - HashMap 存储其他表的数据

Java - 使用Ant自动生成样板代码

java - ANT 等待文件创建

java - import com.sun.xml.internal.fastinfoset.util.StringArray 无法在 javac 上解析

java - 使用 ANT 并遇到问题

java - 如何使用外部绑定(bind)文件覆盖 JAXB 中的默认名称?

java - 如何动态添加一个hook而不需要太多的开销?

postgresql - 错误 : unterminated quoted string at or near

java - 请解释Labeled Statements的用法

java - 反转二进制字符串java的位