使用时
Process p=Runtime.getRuntime().exec(PATH+"adb push /home/user/test.txt /storage/sdcard0/Documents");
p.waitFor();
手机上没有任何东西被推,没有出现任何错误。无论发送多大文件,命令都会立即完成。有趣的是,使用“adb shell ls”,“adb devices”,“adb connect”等不同命令的相同代码执行没有问题。在终端中触发时,push命令也能正常工作。
用
读取输出 BufferedReader reader=new BufferedReader(new InputStreamReader(p.getInputStream()));
仅获取null。 PATH变量设置为sdk的platform-tools目录。
我错过了什么吗?
答案 0 :(得分:0)
如果PATH的值是有效路径而不是/bin:/usr/bin:/usr/local/bin
,那么您可能只是错过了添加另一个斜杠来将目录与命令分开:
Process p=Runtime.getRuntime().exec(PATH+"/adb push /home/user/test.txt /storage/sdcard0/Documents");
你也可以尝试使用绝对路径来验证路径确实不是它的问题:
Process p=Runtime.getRuntime().exec("/path/to/adb push /home/user/test.txt /storage/sdcard0/Documents");
答案 1 :(得分:0)
看起来“adb help”将其输出发送给stderr。 所以你需要查看进程的errorStream以及它的inputStream。
我猜你的情况是,“adb push”遇到错误,所以输出再次转向stderr。