Java でサブプロセスの stdin と stdout をリダイレクトしようとしていますが、最終的には、出力を 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」文字列が出力されることを期待しています。親プロセスが十分長く存続していないためでしょうか?
また、複数のコマンドを送受信できるようにしたいと考えています。