Я должен выполнить оболочки COMMANDE окна из Java Swing приложение и получить результат в реальном времени:получить результат от команды оболочки на 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
Yaz: К сожалению, это не [надежный] (http://stackoverflow.com/a/7158505/230513). – trashgod