Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Ant run command with pipes

Tags:

java

ant

I must to implement command : java -jar test.jar page.xml | mysql -u user -p base in ant. So i Have tried with this task:

<java jar="test.jar" fork="true">   <arg line="page.xml | mysql -u user -p base"/> </java> 

But i have got en exception with pipe - "|" :

 java.lang.IllegalArgumentException: Input already set; can't set to | 

So, that's the problem:)

like image 474
Le_Coeur Avatar asked Jul 27 '09 10:07

Le_Coeur


1 Answers

The pipe (|) can only be used in a shell script. You're passing it as an argument to the java process.

So you need to execute a shell script. You can do this by executing (say) bash -c and passing the above as a shell statement (albeit inline - you could write a separate script file but it seems a bit of an overhead here)

  <exec executable="bash">     <arg value="-c"/>     <arg line="java -jar test.jar page.xml | mysql -u user -p base"/>   </exec> 
like image 143
Brian Agnew Avatar answered Sep 20 '22 12:09

Brian Agnew