Я ищу библиотеку JAVA, которая облегчает запуск внешних программ. Теперь я запускаю их «вручную» в отдельном потоке и записываю ввод / вывод.
У меня есть несколько различных внешних инструментов, и мне нужен единый подход для этого. Задачи, которые я должен решить, включают в себя:
- подготовка входных файлов в соответствии с предопределенными шаблонами
- запуск команд
- ожидание результатов и разбор выходных файлов
- поддержание трубопровода
Весь конвейер можно рассматривать как граф с внешними инструментами в виде узлов и потоком данных в качестве ребер. Было бы замечательно, если бы программное обеспечение могло выполнять некоторые команды в параллельных потоках, если позволяет поток данных.
Существует ли решение таких проблем?
Исходя из полученных ответов, я чувствую, что должен уточнить: мне не нужны трубы. Поток данных можно решить с помощью файлов, которые мне все равно нужны. Кроме того, трубы должны быть линейными (1 выход -> 1 вход), но мне нужен график
У меня уже есть своего рода прототип на python - набор сценариев. Это хорошо, но как по мне - не масштабируемо. Более того, некоторые из программ, которые я вызываю, написаны на Java, поэтому создание всего этого на Java было бы удобно.
Лучший,
Тим