Leiten Sie stdin und stdout in Java um

Ich versuche, stdin und stdout eines Unterprozesses in Java umzuleiten, schließlich werde ich die Ausgabe zu einem JTextArea oder etwas gehen lassen.

Hier ist mein aktueller Code,

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

Die Ausgabe sieht folgendermaßen aus:

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

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

Ich erwarte, dass die Zeichenfolge "Hello World" ausgegeben wird. Vielleicht, weil der übergeordnete Prozess nicht lange genug am Leben bleibt?

Ich möchte auch mehrere Befehle senden und empfangen können.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage