当前位置: 首页 > news >正文

java adb命令_从Java程序执行ADB命令

我正在使用的程序使用ADB(Android调试桥)将文件发送到手机:

for (String s : files)

String cmd = "adb -s 0123456789ABCDEF push " + s + " /mnt/sdcard/" + s;

try {

InputStream is = Runtime.getRuntime().exec(cmd).getInputStream();

while (is.read() != -1) {}

} catch (IOException e) {

e.printStackTrace();

}

我希望程序等待ADB完成传输,但是ADB作为守护程序运行,因此永远无法完成。但是该程序仍在继续运行,并且某种程度上文件没有发送到我的手机(日志中没有例外)。当我从控制台运行命令时,它可以正常工作。

我究竟做错了什么?如何正确通过ADB发送文件?

注意:这is.read() == -1将不起作用,因为ADB守护程序会将 所有输出

写入系统标准输出。我尝试将其转发到文本文件中。它保持为空,并且输出仍然写入终端

编辑 :读取ADB进程的ErrorStream返回每个adb push命令的adb帮助。再次: 确切的

命令(从Eclipse控制台复制)在终端中工作

编辑2 :使用ProcessBuilder而不是RUntime.getRuntime.exec()导致以下错误:

java.io.IOException: Cannot run program "adb -s 0123456789ABCDEF push "inputfile "outputfile""": error=2, File or directory not found

在ProcessBuilder的start()-method上使用ADB(/usr/bin/adb)的绝对路径时,也会发生同样的情况。inputfile和outputfile字符串也是绝对路径,就像/home/sebastian/testfile并且肯定存在。从终端运行命令时(打印字符串“

cmd”,复制并粘贴),evreything仍然可以正常工作。

相关文章:

  • java switch scanner_if语句switchScanner
  • java 高级选择题_Java高级面试题小结
  • jdbctemplate mysql 分页查询 返回list对象_Spring之jdbcTemplate:查询的三种方式(单个值、单个对象、对象集合)...
  • mysql数据库备份 dump_mysqldump备份和恢复MySQL数据库
  • java servlet 3.0_Java Servlet和Servlet 3.0的新特性
  • java 回溯_正则表达式知识详解之回溯引用 (java版示例)
  • java后台线程_67.Java后台线程
  • java 远程 shell脚本_Java 远程调用 shell脚本
  • python自动化数据驱动_Selenium2+python自动化之数据驱动(ddt)
  • java圆和椭圆的关系_圆与椭圆 - brifuture - 博客园
  • java attributelist_java集合类(二)List学习
  • java ccf认证解答_CCF认证考试(java)---窗口
  • java 平滑 停止_设计Java应用程序的平滑停止
  • java开发按键精灵_Java 按键精灵
  • java同步开销_java – 为什么对Map的同步访问会增加大量的开销
  • “Material Design”设计规范在 ComponentOne For WinForm 的全新尝试!
  • CSS居中完全指南——构建CSS居中决策树
  • HTML-表单
  • laravel with 查询列表限制条数
  • laravel5.5 视图共享数据
  • leetcode-27. Remove Element
  • Linux快速复制或删除大量小文件
  • python_bomb----数据类型总结
  • Vue.js 移动端适配之 vw 解决方案
  • XForms - 更强大的Form
  • 从 Android Sample ApiDemos 中学习 android.animation API 的用法
  • 分享一份非常强势的Android面试题
  • 给第三方使用接口的 URL 签名实现
  • 前端每日实战:70# 视频演示如何用纯 CSS 创作一只徘徊的果冻怪兽
  • 小程序滚动组件,左边导航栏与右边内容联动效果实现
  • 用Node EJS写一个爬虫脚本每天定时给心爱的她发一封暖心邮件
  • shell使用lftp连接ftp和sftp,并可以指定私钥
  • ​ 全球云科技基础设施:亚马逊云科技的海外服务器网络如何演进
  • ​HTTP与HTTPS:网络通信的安全卫士
  • ​iOS实时查看App运行日志
  • (Matalb分类预测)GA-BP遗传算法优化BP神经网络的多维分类预测
  • (Redis使用系列) Springboot 在redis中使用BloomFilter布隆过滤器机制 六
  • (二)基于wpr_simulation 的Ros机器人运动控制,gazebo仿真
  • (全注解开发)学习Spring-MVC的第三天
  • (深入.Net平台的软件系统分层开发).第一章.上机练习.20170424
  • (数位dp) 算法竞赛入门到进阶 书本题集
  • (一)VirtualBox安装增强功能
  • (转)Linux下编译安装log4cxx
  • (转)Sublime Text3配置Lua运行环境
  • (转)淘淘商城系列——使用Spring来管理Redis单机版和集群版
  • .bat文件调用java类的main方法
  • .gitignore文件_Git:.gitignore
  • .net 按比例显示图片的缩略图
  • .net 无限分类
  • .net 中viewstate的原理和使用
  • .NET牛人应该知道些什么(2):中级.NET开发人员
  • /dev/sda2 is mounted; will not make a filesystem here!
  • @RequestBody详解:用于获取请求体中的Json格式参数
  • [ 网络基础篇 ] MAP 迈普交换机常用命令详解
  • [2016.7 day.5] T2