接上次的内容,我们在用java调用外部exe,有时会发生exe一闪而过,或者长时间的进程没有内存,cpu变化,看上去好像阻塞了一样,这是因为再调用
process = Runtime.getRuntime().exec("cmd /k dir",null,new File("E:\\profit\\java\\"));
后,还要把他的输出流导出,不然会造成阻塞,代码如下
process = Runtime.getRuntime().exec(path+calParameters.getUWCalculParString(),null,new File(baseDir+"BIN"+File.separator));
}
Runnable ra = new Runnable(){
/*
* this Thread is used for the calcul.exe/uw_calc.exe output,
* @see java.lang.Runnable#run()
*/
public void run(){
InputStream stdin=process.getInputStream();
InputStreamReader isr=new InputStreamReader(stdin);
BufferedReader br=new BufferedReader(isr);
String line=null;
try {
while((line=br.readLine())!=null){
if(getDebug()==1){
MainThread.logger.debug(line);
}
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
};
Thread th = new Thread(ra);
th.start();
红色部分,自己看吧
分享到:
2011-01-23 16:25
浏览 1345
评论