Führen Sie ADB-Befehle von Java aus

Ich möchte eine Datei von meinem Java-Programm auf einen Android-Emulator übertragen. Jetzt kann ich den Emulator mithilfe von ProcessBuilder starten und auch die Logcat-Nachrichten abfangen. Aber wenn ich versuche, den Befehl adb push im Process Builder zu verwenden, bleibt der Prozess hängen und es wird keine Ausgabe generiert.

Der 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");
}

EDIT: - Die probabble Lösung gefunden. Ich habe die Process.waitFor () -Methode verwendet, aber den zurückgegebenen Exitcode nicht gespeichert. So wie ich das gemacht habe:

int exitVal = p.waitFor();

Alles funktionierte wie ein Zauber.

Und @Marc Van Daele Vielen Dank für Ihre Eingabe. Nach meiner Erfahrung funktioniert ProcessBuilder auf beide Arten, d. h. Sie können durch Leerzeichen oder Kommas getrennte Argumente verwenden. :)

Antworten auf die Frage(1)

Ihre Antwort auf die Frage