0
を書いて、することが可能である:オープン2つの読み取り用の端子と私は私のJavaプログラムは、OSネイティブの端末(CMD.EXEまたはxterm)などで起動した場合
System.in
として読み込み/書き込みのため、現在の端末をキープ現状ではとSystem.out
- オープン
NewTerm.in
とNewTerm.out
として書き込み/読み出しのための別の端末、私が行うように見えることができるすべては、第二ターミナルを開いています。私はそれに書き込むことはできません(私はBufferedWriter
で試しました)、コマンドを表示する唯一の方法は、それらのコマンドが開かれて発行されたかどうかです(すなわち、Runtime.getRuntime("xterm ls")
またはProcessBuilder(command).start()
; command
はString[]
です)。
出力を比較できるように、2つの端子を開いたままにしておきたいと思います。次のように順序は次のようになります。第二の端子における第一の端子
- 実行プログラム
- スポーン第二端子
- 発行コマンド
- 第1端子出力
- を読みます第2ターミナル出力を読む
これは可能ですか?ル?ここで
は、私は新しいターミナルを開いたが、開封後は、それへの書き込みを傾ける方法です:
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();
}
}
}