【发布时间】:2014-01-06 01:50:38
【问题描述】:
我无法读取程序的完整输出,有时它会挂起界面并且无法完全编译。 在 netbeans 的输出控制台中,它显示完整的输出,但不在 jtextarea 中。
帮我先在 cmd(命令提示符)中执行命令,然后从 cmd 读取输出到 textarea。
在 cmd 中,命令快速执行并获得完整的结果。但我不知道如何从 cmd 获取结果。
这是我的代码:
String line;
String [] cmds={"xyz.exe","--version"};
try{
Process p =Runtime.getRuntime().exec(cmds);
p.waitFor();
int val=p.exitValue();
if(val==0)
{
b1.setForeground(Color.green);
InputStream ins = p.getInputStream();
InputStreamReader insr = new InputStreamReader(ins);
BufferedReader br = new BufferedReader(insr);
while ((line = br.readLine()) != null) {
System.out.println( line);
t1.setText( line);
}
} else if(val==1)
{
b1.setForeground(Color.red);
InputStream error = p.getErrorStream();
InputStreamReader isrerror = new InputStreamReader(error);
BufferedReader bre = new BufferedReader(isrerror);
while ((line = bre.readLine()) != null) {
t1.setText(line);
}
}
} catch(IOException e){
System.out.println("error");
e.printStackTrace();
} catch (InterruptedException ex) {
Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);
}
【问题讨论】:
-
您的问题是您的长时间运行的进程阻塞了 Swing 事件线程的线程问题。搜索 Swing 和线程。这是一个常见问题,您找到的结果将直接适用于您的问题。
-
能否请你给我一些相关的阅读或这段代码中的问题。
-
如果我正确理解了这个问题,它很像我在这个线程中发现的:stackoverflow.com/questions/20600721/… Trashgod 提供了一个很好的例子来说明如何正确地做到这一点。同样,这是假设我正确理解您的问题
标签: java cmd command execute prompt