【发布时间】:2016-02-21 09:27:20
【问题描述】:
我正在尝试从 java 的 root android 设备中的 /data/data 文件夹中获取所有文件和文件夹。我有在 windows cmd 中正常工作的命令:
adb -s <device name> shell su -c ls /data/data/
我尝试在java中执行这个命令,一切似乎都很好,但是行
p.waitFor();
永远不会回来。
public ArrayList<String> execute(String command) {
ArrayList<String> line = new ArrayList<String>();
try {
ProcessBuilder pb = new ProcessBuilder(adbPath + "adb.exe ", command);
pb.redirectErrorStream(true);
Process p = pb.start();
p.waitFor();
BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
String tmp;
while ((tmp = in.readLine()) != null) {
line.add(tmp);
}
line.removeAll(Arrays.asList("", null));
}
catch (Exception ex) {
ex.printStackTrace();
}
return line;
}
//adbPath = C:\Users\redra_000\AppData\Local\Android\sdk\platform-tools\
//command = -s E7AZCY935671 shell su -c ls /data/data/
我做错了什么?
【问题讨论】:
-
您是否尝试阅读该方法的documentation 以了解其工作原理?
-
adb不列出文件或目录。你为什么要开始它? -
不要提供可以是文本的图像信息。
标签: java android process processbuilder