Wenn ich mein Java-Programm in einem O nativen Terminal (cmd.exe oder xterm) starten, ist es möglich:öffnen Sie zwei Terminals zum Lesen und Schreiben
- den aktuellen Terminal zum Lesen Halten/Schreiben als
System.in
undSystem.out
- öffnen sie einen weiterer Terminal zum Lesen/Schreiben als
NewTerm.in
undNewTerm.out
wie es aussieht, alles, was ich kann scheinen zu tun ist, öffnet das zweite Endgerät. Ich kann nicht schreiben (ich habe es mit BufferedWriter
versucht) und die einzige Möglichkeit, Befehle anzuzeigen, ist, wenn diese Befehle mit seiner Öffnung ausgegeben wurden (d. H. oder ProcessBuilder(command).start()
; wobei command
ein String[]
ist).
Ich möchte die beiden Terminals offen halten, damit ich ihre Ausgänge vergleichen kann. Die Sequenz wäre wie folgt:
- Run-Programm in ersten Anschluß
- Spawn zweiten Anschluss
- Befehl ausgibt in ersten Anschluß
- Ausgabe-Befehl in zweitem Anschluss
- erster Anschluss Ausgang Lese
- Lesen Sie die zweite Terminal-Ausgabe
Ist dies möglich le?
Hier ist, wie ich ein neues Terminal geöffnet, kann aber nicht, um es nach dem Öffnen schreiben:
public class InterFace {
public static void main(String[] args) {
try {
Process p = Runtime.getRuntime().exec("xterm");
BufferedWriter w = new BufferedWriter(new OutputStreamWriter(p.getOutputStream()));
w.write("ls");
w.flush();
w.close();
BufferedReader r = new BufferedReader(new InputStreamReader(p.getInputStream()));
String s;
while ((s = r.readLine()) != null) {
System.out.println(s);
}
}
catch (IOException io) {
io.printStackTrace();
}
}
}