当前位置: 首页 > 面试题库 >

管道的蚂蚁运行命令

韩刚洁
2023-03-14
问题内容

我必须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>


 类似资料:
  • 问题内容: 在定义顺序构建步骤时,我使用元素的属性。我最近看到了一个ant文件,其中的构建顺序是由目标内部的元素定义的。为了显示 : 与 两种方法之间是否有真正的区别?是其中之一更可取吗? 问题答案: 与这两种方法的主要区别在于目标是 始终 执行,而在目标只有在包含目标是执行。 一个澄清的例子: 在这里,将始终执行,而只有在定义时才会执行。 在此,仅当is即定义时才执行。

  • 我下载了最新版本的Eclipse(Mars),并在Eclipse中将所需的Java版本更改为1.6。ini文件,因为我的项目使用Java 1.6。 我将Eclipse中安装的JRE配置为使用Java 1.6。但当我尝试执行ant目标时,它会产生一个错误: 不支持低于1.7的JRE版本。 由于我目前无法升级到Java 1.7,在Mars版本中使用Java 1.6有什么解决方法吗?

  • 问题内容: 以下工作并打印命令输出: 但是此操作失败(退出状态为1): 有什么建议? 问题答案: 您可以这样做:

  • 我有一个ANT脚本,它使用自定义类路径调用Java11类 ${basedir}/lib/ant目录包含几个JAR A.jar-我的图书馆 这些jars都可以很好地加载到类路径${ant.classpath}中。 工作流程是这样的:A.jar调用B.jar,B.jar调用C.jar。 所以,A.jar调用B.jar中的类没问题。它使用JAVA中的import语句调用类: 这工作完美。 然而,B.ja

  • 问题内容: 在groovy脚本中(用于jenkins管道):如何运行命令而不是命令? 我尝试了以下方法: 在通话中致电“ ” : 将呼叫替换为呼叫: 附加信息: 我的命令比命令更复杂。 问题答案: 您提供的Groovy脚本正在将结果脚本中的第一行格式化为空白行。shebang告诉脚本使用/ bin / bash而不是/ bin / sh运行,它需要位于文件的第一行,否则它将被忽略。 因此,您应该这

  • 问题内容: 我正在尝试使用ant在命令行上生成apk。我可以使用ant clean,但是对于ant调试和ant release命令,我得到以下错误。 建立失败 C:\ Android \ sdk \ tools \ ant \ build.xml:649:执行此行时发生以下错误:C:\ Android \ sdk \ tools \ ant \ build.xml:694:执行失败:java.io