我想將我的Java程序中的文件推送到Android模擬器。現在,我可以使用ProcessBuilder啓動模擬器並捕獲logcat消息。但是,無論何時我試圖在進程生成器中使用adb push命令,進程都會掛起,並且不會生成輸出。從java執行adb命令
的代碼:
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()方法,但不存儲它返回的退出碼。現在,當我這樣做:
int exitVal = p.waitFor();
一切工作作爲一種魅力。
And @Marc Van Daele 感謝您的輸入。根據我的經驗,ProcessBuilder以兩種方式工作,即。您可以使用由空格或逗號分隔的參數。 :)
單獨的參數說實話,我認爲這是不可能的存儲WAITFOR的返回值可以解決這個問題。我寧願認爲,有時候,你已經足夠快地從InputStream中讀取數據(然後它可以正常工作),有時候你不會,然後你就會遇到'掛起'的問題。 –
是的..在我做了編輯之後..對我來說也覺得有點奇怪。但是現在我已經有一段時間沒有面臨同樣的問題。 感謝您的幫助guyz :) – user1471910