小编use*_*910的帖子

从java执行adb命令

我想将文件从我的 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");
}
Run Code Online (Sandbox Code Playgroud)

编辑:-找到可能的解决方案。我正在使用 Process.waitFor() 方法,但没有存储其返回的退出代码。现在,当我这样做时:

int exitVal = p.waitFor();
Run Code Online (Sandbox Code Playgroud)

一切都充满魅力。

和@Marc Van Daele 感谢您的投入。根据我的经验,ProcessBuilder 以两种方式工作,即。您可以使用由空格或逗号分隔的参数。:)

java android adb android-emulator

5
推荐指数
1
解决办法
8718
查看次数

标签 统计

adb ×1

android ×1

android-emulator ×1

java ×1