Jan: Aus Programm externe Console steuern

Beitrag lesen

Hallo,

Ich stehe momentan vor dem Problem das ich eine Console aus meinem Java Programm heraus aufrufen muss, bzw. die Console mit bestimmten Eingaben versorgen will, um die Ausgabe später abzufangen.

Also die Console zu starten ist kein Problem
.
.
.

Process p; // p ist global deklariert
p = rt.exec("c:/pfad/console.exe"); ....

die Ausgaben der Console abzufangen ist ebenfalls kein Problem ...
.
.
.

try {
                BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));

String line;
                while ( (line = in.readLine()) != null ){
                  System.out.println(line);
                }
                in.close();
              }
              catch ....

die Ausgabe wird seperat in einem Thread abgefangen.

Nun zum eigentlich Problem, wenn ich jetzt einen Consolenbefehl über den OutputStream abschicken will, hängt sich die Console auf ;/

momentan sieht der Code aus wie folgt:
.
.
.
      try {
        BufferedWriter out = new BufferedWriter(new OutputStreamWriter(
            p.getOutputStream() )
        );

out.write("befehl");
        out.close();
      }
      catch ....

Bin für jede Hilfe dankbar ;)

Ps: Ich muss die Befehle während der Laufzeit des externen Programmes eingeben können, nicht nur beim ersten start. Wie z.B. "p = rt.exec("cmd c/ dir")" ist nicht möglich.

Vielleicht noch ganz kurz, kann man eigentlich in Java die Console anstatt eines Hintergrund-Prozesses auch als Anwendung aufrufen ?

Mfg Jan