下面的命令我可以通过终端运行,但是当我试图通过java代码执行它时,它给我127个退出代码。
sledge connect --cluster_id=<name> --namespace=<name> --password=<pass>
Java的:
try {
String[] cmd = { "/bin/bash", "sledge connect --cluster_id=<name> --namespace=<name> --password=<pass>"};
Process p = Runtime.getRuntime().exec(cmd);
int po = p.waitFor();
System.out.println(po);
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
您需要在命令数组中添加“-c”,因此请替换:
String[] cmd = { "/bin/bash", "sledge connect --cluster_id=<name> --namespace=<name> --password=<pass>"};
用:
String[] cmd = { "/bin/bash", "-c", "sledge connect --cluster_id=<name> --namespace=<name> --password=<pass>"};
从bash手册:
-c string如果存在-c选项,则从字符串中读取命令。如果字符串后面有参数,则将它们分配给位置参数,从$ 0开始。