使用java执行adb命令出现报错:
命令:adb shell dumpsys window w |findstr \\/ |findstr name=
报错内容:
/system/bin/sh: findstr: not found
/system/bin/sh: findstr: not found
Failed to write while dumping service window: Broken pipe
具体情况:
命令是用来查询手机当前包名和应用名的,发现在cmd命令提示符中输入查询命令的话,可以查询出来内容,但是用java来执行adb命令就查不出来内容,并出现上述报错,java代码如下:
String command = \"adb shell dumpsys window w |findstr \\\\/ |findstr name=\";
try {
Process p = Runtime.getRuntime().exec(command);
String line = \"\";
BufferedReader errorReader = new BufferedReader(new InputStreamReader(p.getErrorStream()));
while ((line = errorReader.readLine()) != null) { // 打印报错信息
System.out.println(\"Err ==> \" + line);
}
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(p.getInputStream()));
while ((line = bufferedReader.readLine()) != null) { // 打印执行结果
System.out.println(line);
}
p.destroy();
} catch (Exception e) {
e.getStackTrace();
}
解决办法:
看报错内容是findstr不能用,将findstr替换成grep就可以了,将查询命令替换为:
String command = \"adb shell dumpsys window w |grep \\\\/ |grep name=\";
继续阅读与本文标签相同的文章
土巴兔披露其累计研发投入过亿
产品经理如何运用好数据分析(一)
-
Hitachi Vantara推出AI驱动的数据中心运营解决方案
2026-05-18栏目: 教程
-
湖北发力“5G”:天时地利人和
2026-05-18栏目: 教程
-
云原生技术之Docker入门
2026-05-18栏目: 教程
-
点我达与满电未来达成合作协议
2026-05-18栏目: 教程
-
光明日报:聚集高端产业 加速双向开放
2026-05-18栏目: 教程
