Process - OutputStream

illaX

Erfahrenes Mitglied
Hi,

ich erstelle einen Process. Dann gibt es dort den InputStream, OutputStream und ErrorStream.

Nun möchte ich gerne, wenn in der Eingabeaufforderung eine Eingabe erwartet wird darauf reagieren. Wie kann ich das machen?
 
Hier mal ein bisschen code:

Hier erstelle ich den Process:
Code:
String strExecute = "tclsh scm_checkout.tcl" +
                                specificSelection.getSpecificSelection() +
                                " -" + cbUnitType.getSelectedItem() +
                                " " + unitJPanel.getText();
            
            try {
                File file = new File("scm_tools/");
                process = Runtime.getRuntime().exec(strExecute, null , file);

Ich starte also eine .tcl Datei und die führt dann verschiedene Operationen durch. Dieses Programm fragt dann, ob zB: temporary files gelöscht werden sollen und wartet auf eine Eingabe.
Wie kann ich diese Abfrage abfangen?
Schreiben kann ich ja mit dem OutputStream
 
Genau, Du durchforstest den process.getInputStream() und schreibst dann das, was gemacht werden soll in den process.getOutputStream().


Code:
BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream()));
PrintStream out = new PrintStream(process.getOutputStream());
for (;;) {
String s = in.readLine();
if (s = null) {
try {
Thread.sleep(1000);
}
catch (InterruptedException ie) {}
}
else {
 
if (s.equals("del") {
  out.println("del *.*");
}
 
//u.s.w.
 
}
 
Hatte gehofft das man dem Process irgendwie entlocken kann, ob eine Eingabe erforderlich ist und nicht die String vergleiche.


Vielen Dank für die Hilfe schnuffi
 

Neue Beiträge

Zurück