xargs - 程序 运行 是在循环中还是重新执行

xargs - does the program run in loop or get re-executed

我有一个 C++ 程序输出文本字符串,这些文本字符串被读取为我的 Java 程序的命令行输入。我的问题是 Java 程序是否连续 运行 给出了新的输入,或者程序是否终止然后在生成新的命令行参数时再次执行?

我的命令:

./ORBMarkerDetection templateImages/smallMarkers/Activities/3.2/chair.png templateImages/smallMarkers/Activities/3.2/cutlery.png  | xargs -n3 java -jar ../../system/layers/out/artifacts/layers_jar/layers.jar

编辑:

因此,例如,如果我的 Java 程序中有一个变量,我想在每次给出三行输入时递增,它是每次递增还是在处理完三行之后递增 Java 程序终止并且变量设置回它的初始化值?

-n参数的定义如下:

--max-args=max-args, -n max-args
          Use  at  most  max-args  arguments per command line.  Fewer than
          max-args arguments will be used if the size (see the -s  option)
          is  exceeded, unless the -x option is given, in which case xargs
          will exit.

因此,使用 -n 3 选项,您的 java 命令将每输入三行 运行 一次。每次 运行,它(我想)会循环并处理三个输入。

在每组三行之后,您的 Java 程序将退出,其中的所有信息(循环计数器等)都将丢失。