Запуск внешней программы с перенаправленным stdin и stdout из Java
Я пытаюсь запустить внешнюю программу из Java-программы, и у меня возникли проблемы. По сути, я хотел бы сделать следующее:
Runtime.getRuntime().exec("./extprogram <fileIn >fileOut");
Однако я обнаружил, что это не работает - очевидно, Java должен использоватьProcess
с входными и выходными потоками и другими вещами, с которыми я не сталкивался.
Я рассмотрел несколько примеров в Интернете (многие из которых получены от SO), и, похоже, не существует простого стандартного способа сделать это, что для человека, который не полностью понимает, что происходит. на, может быть довольно сложно.
У меня также возникают проблемы при попытке создать собственный код из примеров кода других людей, потому что, как правило, большинство других людей 1. не заинтересованы в перенаправленииstdin
и 2. не обязательно перенаправляютstdout
в файл, но вместоSystem.out
.
Итак, кто-нибудь сможет указать мне в направлении каких-либо хороших простых шаблонов кода для вызова внешних программ и перенаправленияstdin
а такжеstdout
? Благодарю.