Redirigir stdin y stdout en Java

Estoy tratando de redireccionar la entrada estándar y la salida estándar de un subproceso en java, eventualmente voy a hacer que la salida vaya a una JTextArea o algo así.

Aquí está mi código actual,

<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>

La salida se ve así:

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

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

Estoy esperando ver la cadena de "Hello World" emitida. Tal vez porque el proceso de los padres no se mantiene vivo el tiempo suficiente?

También me gustaría poder enviar y recibir múltiples comandos.

Respuestas a la pregunta(2)

Su respuesta a la pregunta