Uruchamianie zewnętrznego programu z przekierowanym stdin i stdout z Java
Próbuję uruchomić program zewnętrzny z programu Java i mam problemy. Zasadniczo chciałbym to zrobić:
Runtime.getRuntime().exec("./extprogram <fileIn >fileOut");
Jednak odkryłem, że to nie działa - pozory Java muszą używaćProcess
ze strumieniami wejściowymi i wyjściowymi oraz innymi rzeczami, z którymi nie mam doświadczenia.
Przejrzałem wiele przykładów w Internecie (z których wiele pochodzi z SO) i nie wydaje się, aby istniał prosty standardowy sposób na to, co dla kogoś, kto nie rozumie w pełni, co się dzieje, może być dość frustrujące.
Mam również problem z próbą zbudowania własnego kodu poza przykładami kodu innych ludzi, ponieważ ogólnie wydaje się, że większość innych osób 1. nie jest zainteresowanych przekierowaniemstdin
i 2. niekoniecznie przekierowująstdout
do pliku, ale zamiast tegoSystem.out
.
Czy więc ktoś mógłby wskazać mi dobry prosty szablon kodu do wywoływania zewnętrznych programów i przekierowywaniastdin
istdout
? Dzięki.