String cmd=" D:/James/1 ASU/REU/senna-v3.0/senna/senna-win32.exe -posvbs < \"D:/James/1 ASU/REU/senna-v3.0/senna/tmp.tmp\"";
Process p2 = Runtime.getRuntime().exec(cmd);
Я хочу запустить приложение и вставить в него данные из текстового файла.Я попробовал описанное выше, и приложение запустилось, но приложение жаловалось и говорит, что <не является допустимым аргументом командной строки. </p>
недопустимый аргумент:
SENNA Tagger (POS - CHK - NER - SRL) (c) Ронан Коллоберт 2009
Как, черт возьми, перенаправить ввод сфайл?Мне также нужно прочитать поток вывода из приложения, что я и сделал:
p2.waitFor();
char[] cbuf = new char[1024];
BufferedReader processOutput = new BufferedReader(new InputStreamReader(p2.getInputStream()));
processOutput.read(cbuf);
processOutput.read(cbuf);
System.out.println(new String(cbuf));
Я не хочу запускать программу и отправлять ввод текста из stdin.Я просто хочу запустить программу один раз, дождаться ее завершения и затем прочитать все выходные данные.Основная причина этого заключается в том, что приложению может потребоваться неопределенное количество времени для завершения, и я не хочу иметь дело с проблемой, что чтение будет блокироваться, если нет вывода и т. Д.