【发布时间】:2017-01-20 12:10:09
【问题描述】:
我正在尝试通过代码获取 adb 设备列表,但在启动 ProcessBuilder 时出现异常。
这是我的代码 -->
try {
ProcessBuilder pb = new ProcessBuilder("adb.exe", "adb devices");
pb.directory(new File("C:\\Users\\user\\AppData\\Local\\Android\\sdk\\platform-tools"));
Process p = pb.start(); // here is the xception
BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = null;
Pattern pattern = Pattern.compile("^([a-zA-Z0-9\\-]+)(\\s+)(device)");
Matcher matcher;
while ((line = in.readLine()) != null) {
if (line.matches(pattern.pattern())) {
matcher = pattern.matcher(line);
if (matcher.find())
System.out.println(matcher.group(1));
}
}
这里是异常堆栈跟踪 -->
java.io.IOException:无法运行程序“adb.exe”(在目录中 “C:\Users\user\AppData\Local\Android\sdk\platform-tools”): CreateProcess error=2, 系统找不到指定的文件 java.lang.ProcessBuilder.start(未知来源)在 MainTest.Example.main(Example.java:45) 引起:java.io.IOException: CreateProcess error=2, 系统找不到指定的文件 java.lang.ProcessImpl.create(Native Method) 在 java.lang.ProcessImpl.(未知来源)在 java.lang.ProcessImpl.start(Unknown Source) ... 2 更多
我在 ProcessBuilder 中更改命令后尝试过,但没有运气。
需要帮助。
【问题讨论】: