java调用cmd等外部程序,线程堵塞有关问题

java调用cmd等外部程序,线程堵塞问题
Process p = Runtime.getRuntime().exec('cmd命令');InputStream in = p.getInputStream();BufferedReader reader = new BufferedReader(new InputStreamReader(in, "GBK"));String line = reader.readLine();问题一: 程序在  reader.readLine() 卡死不再往下执行。问题二:后面的代码 p.waitFor(); 有人说也会卡死的。问题三:当程序正常执行时用InputStream in = p.getInputStream();有错误信息时用 InputStream in = getErrorStream();我现在的程序是如果有错误输出则通过InputStream in = getErrorStream();把错误信息提取出来,后面用InputStream in = p.getInputStream();提取正常情况下的返回值,但是 在前面提取错误信息String line = reader.readLine();就堵塞了不往下执行了,即使cmd脚本正常执行有返回值程序也到不了提取正常执行的返回信息了,我该怎么调整呢。请高手指教一下,感激不尽!!!
------解决思路----------------------
String line = reader.readLine(); 是需要输入读取,才能继续进行啊
欢迎关注:http://lvvbbe.com/