使用流程构建器执行Adb命令时Java收到错误

时间:2015-01-06 09:30:20

标签: java android cmd adb

执行以下行时,我收到回复错误=>分段错误

 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一样工作

CMD commnads snapshot

3 个答案:

答案 0 :(得分:3)

您对流程构建器有误解。我觉得你认为它可以作为一种脚本。这是错的。 Process builder只是构建正确的命令行并执行它。

所以,你可以运行cmd.exe,你可以运行cmd.exe /c adb shell,但我怀疑你可以运行其余的命令。

查看adb的说明。如果它支持类似于cmd /c的模式,即在命令行中获取命令然后执行它,则可以执行此操作。

顺便说一下,你为什么要这样做?

答案 1 :(得分:-2)

检查设备是否已植根,通常在设备未植根时,它不起作用。

答案 2 :(得分:-3)

我猜不知道

/ c。 它应该是cd c:/