我無法讀取程序的完整輸出,有時會掛起接口並且不能完全編譯。 在netbeans的輸出控制檯中,它顯示完整的輸出,但不顯示在jtextarea中。給出輸入命令並獲取命令提示完成輸出到textarea在Java中
幫我出來先在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和線程上搜索。這是一個常見問題,您發現的結果將直接適用於您的問題。 –
請您在本代碼中建議我一些相關的閱讀或問題。 – user3078848
如果我正確理解這個問題,它很像我在這個線程中發現的:http://stackoverflow.com/questions/20600721/display-indeterminate-jprogressbar-while-batch-file-runs Trashgod提供了一個如何正確執行此操作的最佳示例。再次,這是假設我正確理解你的問題 – DerStrom8