执行从Java亚行的命令 [英] Execute adb commands from java

查看:101
本文介绍了执行从Java亚行的命令的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I want to push a file from my Java program to an Android emulator. Now, I can launch the emulator by using ProcessBuilder and also trap the logcat messages. But whenever I'm trying to use the adb push command in process builder, the process hangs and no output is generated.

在code:

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()方法,而不是存储其返回的退出code。现在,当我这样做:

- Found the probabble solution. I was using Process.waitFor() method but not storing its returned exitcode. Now as i did this:

int exitVal = p.waitFor();

一切工作的一个魅力。

Everything worked as a charm.

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

And @Marc Van Daele Thanks for your input. as per my experience, ProcessBuilder works in both ways ie. You can use arguments separated by spaces or by commas. :)

推荐答案

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

Shouldn't this be separate arguments like

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

这篇关于执行从Java亚行的命令的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆