我想在 java 程序中执行以下命令。但它只执行第一部分。| 之后的部分 不执行
Process process = Runtime.getRuntime().exec(" adb devices | tail -n +2 | cut -sf 1");
process.waitFor();
您需要在 shell 中运行它。试试这个:
Process process = Runtime.getRuntime().exec(new String[] {
"/bin/sh",
"-c",
"adb devices | tail -n +2 | cut -sf 1"
});
process.waitFor();
请改用脚本,因为 Pipe 本身是 shell 的一部分。
或者做这样的事情:
String[] commands = {
"/bin/sh",
"-c",
"ls /etc | grep release"
};
Process p = Runtime.getRuntime().exec(commands);