首页 > 解决方案 > 为什么Java需要cmd /c或者cmd /k来执行多段adb

问题描述

我需要adb在 java 程序中使用Runtime.getRuntime().exec(). 截图并保存到我的电脑上。如下:成功了

但是如果我删除cmd /c,我会得到一个错误。如下:失败了

这是为什么?

标签: javaexec

解决方案


这是因为在您的第一种情况下,您cmd.exe使用参数执行。cmd.exe知道如何处理&&——即执行第一个adb命令,然后执行第二个adb命令。

在第二种情况下,您正在adb使用参数执行。adb不理解&&为命令分隔符 - 它试图将其解释为自身的参数并失败(&&不是 的有效参数adb


推荐阅读