上のシェルコマンドからの結果を得る:私はJavaのスイングアプリからシェルcommandeウィンドウを実行し、リアルタイムで結果を取得する必要がJTextAreaに
String cmd = jTextField1.getText();
StringBuffer output = new StringBuffer();
Process p;
try {
p = Runtime.getRuntime().exec(cmd);
BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = "";
while ((line = reader.readLine()) != null) {
System.out.println("" + line);
jTextArea1.append(line + "\n");
}
} catch (Exception e) {
e.printStackTrace();
}
問題は次のようにJTextAreaの中での書き込みが後の仕上がり本物ではない時間を実行していることですSystem.out.println(..)。
これは間違って同期されています。より良いアプローチが示されている[ここ](http://stackoverflow.com/a/37859517/230513)。 – trashgod
@trashgod正しく動作していますが最適化されていません! – Yaz
ヤズ:悲しいことに、それは信頼できません(http://stackoverflow.com/a/7158505/230513)。 – trashgod