然后你要使用线程不停地读取process.getErrorStream()和process.getInputStream(),注意一定要使用线程读,不能等待process执行完成后再读,因为缓存区大小固定,process往缓冲区里写时若缓冲区满了则process会等待缓冲区释放
inputStream = Runtime.getRuntime().exec(cmd)java的这个方式,得到的是控制台的输出流,
也就是linux命令运行完,显示在屏幕上的东西,都以流的方式传递给java了,
可以通过下边的方式
InputStreamReader insr = new InputStreamReader(inputStream, “GBK”)
BufferedReader br = new BufferedReader(insr)
while (br.ready()) {
String line = br.readLine()
}
得到屏幕上显示的一行行内容,解析得到你想要的结果。
InputStreamReader 最后一个参数,是设置显示流是什么字符集的,如果不正确,请自行调整一下。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)