Öffnen einer Shell und Interaktion mit deren I / O in Java

Ich versuche eine Shell zu öffnen (xterm) und mit ihr zu interagieren (Befehle schreiben und die Ausgabe der Shell lesen)

Hier ist ein Codebeispiel, das nicht funktioniert:

public static void main(String[] args) throws IOException {
    Process pr = new ProcessBuilder("xterm").start();
    PrintWriter pw = new PrintWriter(pr.getOutputStream());
    pw.println("ls");
    pw.flush();
    InputStreamReader in = new InputStreamReader(pr.getInputStream());
    System.out.println(in.read());
}

Wenn ich dieses Programm ausführe, öffnet sich ein "xterm" -Fenster und der "ls" -Befehl wird nicht eingegeben. Erst wenn ich das Fenster schließe, wird ein "-1" ausgegeben und nichts aus der Shell gelesen

WICHTIG-

Ich weiß, ich kann nur verwenden:
Process pr = neuer ProcessBuilder ("ls"). Start ();

Um die Ausgabe zu bekommen, muss ich aber das "xterm" für andere Zwecke öffnen

Danke vielmals

Antworten auf die Frage(2)

Ihre Antwort auf die Frage