Библиотека Java для вызова внешних программ - PullRequest
2 голосов
/ 22 января 2011

Я ищу библиотеку JAVA, которая облегчает запуск внешних программ. Теперь я запускаю их «вручную» в отдельном потоке и записываю ввод / вывод.

У меня есть несколько различных внешних инструментов, и мне нужен единый подход для этого. Задачи, которые я должен решить, включают в себя: - подготовка входных файлов в соответствии с предопределенными шаблонами - запуск команд - ожидание результатов и разбор выходных файлов - поддержание трубопровода

Весь конвейер можно рассматривать как граф с внешними инструментами в виде узлов и потоком данных в качестве ребер. Было бы замечательно, если бы программное обеспечение могло выполнять некоторые команды в параллельных потоках, если позволяет поток данных.

Существует ли решение таких проблем?

Исходя из полученных ответов, я чувствую, что должен уточнить: мне не нужны трубы. Поток данных можно решить с помощью файлов, которые мне все равно нужны. Кроме того, трубы должны быть линейными (1 выход -> 1 вход), но мне нужен график

У меня уже есть своего рода прототип на python - набор сценариев. Это хорошо, но как по мне - не масштабируемо. Более того, некоторые из программ, которые я вызываю, написаны на Java, поэтому создание всего этого на Java было бы удобно. Лучший, Тим

Ответы [ 2 ]

1 голос
/ 22 января 2011

Я думаю, что муравей должен быть идеальным для этого. Он также имеет довольно хорошую библиотеку Java для обработки файлов. Между этим и, возможно, шаблонами скоростей , я бы подумал, что вы сможете делать то, что хотите.

1 голос
/ 22 января 2011

Если вы работаете в Unix, задумывались ли вы о динамическом построении командной строки оболочки Unix (с использованием конвейеров, перенаправлении, tee и т. Д.), А затем порождали эту единственную команду, используя ProcessBuilder или подобное, и ) /bin/sh -c?

Это означает, что вы используете существующую рабочую инфраструктуру, которая обрабатывает каналы, буферизацию, сбор ошибок и управление ресурсами.

...