Я пытаюсь перенаправить стандартный ввод и стандартный вывод подпроцесса в java, в конце концов я собираюсь вывести вывод в JTextArea или что-то в этом роде.
Вот мой текущий код,
Process cmd = Runtime.getRuntime().exec("cmd.exe");
cmd.getOutputStream().write("echo Hello World".getBytes());
cmd.getOutputStream().flush();
byte[] buffer = new byte[1024];
cmd.getInputStream().read(buffer);
String s = new String(buffer);
System.out.println(s);
Вывод выглядит следующим образом:
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:\(Current Directory)>
Я ожидаю увидеть вывод строки «Hello World». Может быть, потому, что родительский процесс не живет достаточно долго?
Я также хотел бы иметь возможность отправлять и получать несколько команд.