Redirecionar stdin e stdout em Java

Eu estou tentando redirecionar stdin e stdout de um subprocesso em java, eventualmente, eu vou ter a saída para um JTextArea ou algo assim.

Aqui está meu código atual,

<code>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);
</code>

A saída é assim:

<code>Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

C:\(Current Directory)>
</code>

Espero ver a sequência "Hello World" emitida. Talvez porque o processo pai não esteja vivo por tempo suficiente?

Eu também gostaria de poder enviar e receber vários comandos.

questionAnswers(2)

yourAnswerToTheQuestion