我想将文件从我的 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 以两种方式工作,即。您可以使用以空格或逗号分隔的参数。 :)
最佳答案
这不应该是单独的参数吗
ProcessBuilder proc = new ProcessBuilder("D://android-sdk//platform-tools//adb.exe", "push", "D:\\final.xml", "/mnt/sdcard/final.xml");
关于java - 从 java 执行 adb 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11137131/