我希望能够从我的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");
}
编辑: 找到了可能的解决方案。我使用了Process.waitFor()方法,但没有存储其返回的退出代码。现在我这样做:
int exitVal = p.waitFor();
一切都运作得很好。
感谢@Marc Van Daele的贡献。根据我的经验,ProcessBuilder可以两种方式工作,即您可以使用由空格或逗号分隔的参数。 :)