0

У меня есть программа на C++, которая выводит текстовые строки, которые считываются как входы командной строки в мою программу Java. Мой вопрос заключается в том, постоянно ли работает программа Java с заданными новыми вводами или завершается ли программа, а затем выполняется снова, когда генерируются новые аргументы командной строки?xargs - программа запускается в цикле или выполняется повторно.

Моя команда:

./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 

EDIT:

Так, например, если у меня был varible в моей программе Java, что я хотел, чтобы увеличить каждый раз, когда три линии ввода даны бы это приращение каждый время или после обработки трех строк, программа Java завершена, а переменная возвращается к ее значению инициализации?

ответ

0

Определение -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 выйдет, и вся информация в ней (счетчики циклов и т. Д.) Будет потеряна.

+0

Можете ли вы добавить свой ответ на редактирование, которое я добавил в исходное сообщение? – Colin747