otwieranie powłoki i interakcja z jej I / O w java
Próbuję otworzyć powłokę (xterm) i wchodzić z nią w interakcję (pisać polecenia i czytać dane wyjściowe powłoki)
Oto przykład kodu, który nie zadziała:
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());
}
Kiedy wykonuję ten program, otwiera się okno „xterm” i nie wpisuje się polecenia „ls”. Dopiero gdy zamknę okno, otrzymuję „-1” i nic nie jest odczytywane z powłoki
WAŻNY-
Wiem, że mogę po prostu użyć:
Proces pr = new ProcessBuilder ("ls"). Start ();
Aby uzyskać wyjście, ale potrzebuję „xterm” otwartego dla innych zastosowań
Wielkie dzięki