我想使用Java执行“adb”命令。 我尝试了如下:
Process p = Runtime.getRuntime().exec(new String[]{"cmd","/c","adb devices"});
但是,我收到以下错误p.getErrorStream()
:
'adb' is not recognized as an internal or external command,operable program or batch file.
“adb devices”之间是否存在空格问题?
如何在命令中添加空格?
答案 0 :(得分:3)
问题不在于空间,而是找不到adb
的事实(因为它不在路径上)。
做这两件事之一:
adb.exe
所在的位置或 PATH
(针对该命令)的方式adb.exe
位于PATH
中提及的目录中。虽然Runtime.exec()
可以实现这两个目标,但我建议使用ProcessBuilder
,因为它有更好/更简单的API。
例如,要修改执行命令的路径,请执行以下操作:
ProcessBuilder pb = new ProcessBuilder("cmd","/c","adb devices");
pb.directory(new File("c:\\path\\to\\android\\platform-tools\\");
pb.start();
答案 1 :(得分:0)
最有可能的问题出现在你的%PATH%(或缺少它)中 - 似乎它正确地分隔了参数。 YO可能会尝试使用adb可执行文件的绝对路径