【发布时间】:2009-08-13 08:56:45
【问题描述】:
我想使用在 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 在执行时没有更新。
这个问题的原因是什么?
【问题讨论】:
标签: java user-interface swing command-line textarea