abriendo un shell e interactuando con su E / S en java
Estoy tratando de abrir un shell (xterm) e interactuar con él (escribir comandos y leer el resultado del shell)
Aquí hay una muestra de código que no funcionará:
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());
}
Cuando ejecuto este programa, se abre una ventana "xterm" y no se ingresa el comando "ls". Solo cuando cierro la ventana se imprime un "-1" y no se lee nada del shell
IMPORTANTE-
Sé que puedo usar:
Proceso pr = nuevo ProcessBuilder ("ls"). Start ();
Para obtener la salida, pero necesito abrir el "xterm" para otros usos
Muchas gracias