执行从Java ADB命令(Execute adb commands from java)

2019-06-25 15:44发布

我想从我的Java程序推送文件到Android仿真器。 现在,我可以使用的ProcessBuilder也是陷阱logcat的消息启动模拟器。 但每当我试图在进程生成器来使用adb push命令,该过程将挂起,并且不产生输出。

代码:

try {
    ProcessBuilder proc = new ProcessBuilder("D://android-sdk//platform-tools//adb.exe",
                                             "push D:\\final.xml /mnt/sdcard/final.xml");
    Process p = proc.start();
    BufferedReader br2 = new BufferedReader(new InputStreamReader(p.getInputStream()));
    while ( (line = br2.readLine()) != null)
        System.out.println(line);
} catch (Exception e) {
    System.err.println("Error");
}

编辑: - 发现了probabble解决方案。 我使用Process.waitFor()方法,而不是存储其返回的退出码。 现在,当我这样做:

int exitVal = p.waitFor();

一切工作的魅力。

而@Marc凡Daele感谢您的输入。 按照我的经验,的ProcessBuilder在IE两种方式。 您可以使用空格或逗号分隔的参数。 :)

Answer 1:

如果不是这个像单独的参数

ProcessBuilder proc = new ProcessBuilder("D://android-sdk//platform-tools//adb.exe", "push",  "D:\\final.xml", "/mnt/sdcard/final.xml");


文章来源: Execute adb commands from java