我想启动一个可在GUI中输入的参数执行的命令行。从GUI启动一个命令行工具
Process
类可以用来从Java应用程序叉我需要在命令行的过程,我用Process
对象的getInputStream()
方法得到的结果,并得到了它在GUI中显示。
private void confirmActionPerformed(java.awt.event.ActionEvent evt) {
String output;
try {
Process p = Runtime.getRuntime().exec("my command line exe with parameters");
BufferedReader stdInput = new BufferedReader(new InputStreamReader(p.getInputStream()));
while ((output = stdInput.readLine()) != null) {
TextField.setText(TextField.getText()+output+"\n");
}
} catch (IOException e) {
System.out.println("Exception in Process");
e.printStackTrace();
}
}
这是我的代码,其是一个按钮按下事件的事件侦听器和我试图显示在文本字段中的处理(的Java Swing成分)的结果。
这个过程实际上运行了相当长的时间,并显示了一些统计数据,当它在命令行运行时运行,但是当我在GUI中使用上面的代码尝试它时,我只能得到整个统一结果过程完成运行。我没有得到在执行时更新的TextField
。
这个问题的原因是什么?