Rediriger stdin et stdout en Java

Je suis en train de rediriger l'entrée standard stdin et stdout d'un sous-processus en java, finalement, je vais avoir la sortie aller à un JTextArea ou quelque chose.

Voici mon code actuel,

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

La sortie ressemble à ceci:

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

C:\(Current Directory)>

Je m'attends à voir le "Hello World" de la chaîne de sortie.
Peut-être parce que le processus parent n'est pas de rester en vie assez longtemps?

J'aimerais aussi être en mesure d'envoyer et de recevoir des commandes multiples.

OriginalL'auteur Josh | 2012-05-02