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. :)