执行以下行时,我收到回复错误=>分段错误
String[] commands = {"cmd.exe","/c","adb shell","su","cd /data/app","ls com.mypack*"};
StringBuilder cmdReturnRsp = new StringBuilder();
try {
ProcessBuilder processBuilder = new ProcessBuilder(commands);
processBuilder.directory(fileADb);
Process process = processBuilder.start();
InputStream inputStream = process.getInputStream();
int c;
while ((c = inputStream.read()) != -1) {
cmdReturnRsp.append((char) c);
}
System.out.println("responce = "+ cmdReturnRsp);
}catch(Exception e){
}
但是当上面的行在cmd提示符下运行时它运行正常,那么如何使代码与cmd一样工作
答案 0 :(得分:3)
您对流程构建器有误解。我觉得你认为它可以作为一种脚本。这是错的。 Process builder只是构建正确的命令行并执行它。
所以,你可以运行cmd.exe
,你可以运行cmd.exe /c adb shell
,但我怀疑你可以运行其余的命令。
查看adb
的说明。如果它支持类似于cmd /c
的模式,即在命令行中获取命令然后执行它,则可以执行此操作。
答案 1 :(得分:-2)
检查设备是否已植根,通常在设备未植根时,它不起作用。
答案 2 :(得分:-3)
/ c。 它应该是cd c:/