linux下exec函数不返回结果

linux下exec函数不返回结果,第1张

yes you are right , exec 是不返回的,它将当前进程的内容替换成要执行的程序的内容,这样就可以运行一个新的程序了。如果exec 返回了说明执行新程序出错了,内存不够啊,系统异常啊。。

Process process=Runtime. Runtime.getRuntime().exec("ps -ef | grep -v 进程名")

然后你要使用线程不停地读取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 最后一个参数,是设置显示流是什么字符集的,如果不正确,请自行调整一下。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8287330.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-15
下一篇 2023-04-15

发表评论

登录后才能评论

评论列表(0条)

保存