[英]Not able to run grep command
我试图执行以下指令,
Process p = Runtime.getRuntime().exec("/system/bin/lsof|grep mediaserver");
在android(java)中,但出现错误。 如果我按照以下说明进行操作,
Process p = Runtime.getRuntime().exec("/system/bin/lsof ");
文件已成功保存。任何人都可以告诉您错误是什么吗? 实际上,我想列出并检查媒体服务器服务是否正在运行。
grep实用程序可能未安装在您的设备上。
您可以通过在控制台中尝试以下操作来检查它:
> adb shell
$ grep
grep: not found
最后一行表示此命令不可用。
问题是Runtime.getRuntime().exec(...)
不知道如何处理外壳语言。 在Linux / Unix平台上,您将像这样:
Process p = Runtime.getRuntime().exec(new String[]{
"/bin/sh", "-c", "/system/bin/lsof | grep mediaserver"});
但是,(显然)Android默认情况下没有命令外壳/命令提示符。 因此,您需要确定并在设备上安装合适的外壳,或者“手动”构建管道。 即,通过创建“管道”文件描述符,并执行这两个命令,使lsof
写入管道,而grep
从管道读取。
也许答案是像这样运行它...
Process p = Runtime.getRuntime().exec(
"adb shell /system/bin/lsof | grep mediaserver");
(尝试从Java交互式运行adb的“ shell ....”部分,然后从Java进行。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.