我的代码就像这样
final String[] cmdArray = {
"sh", "./invoke_payment_files_generator.sh",
String.valueOf(paymentBatchId)
};
final ProcessBuilder processBuilder = new ProcessBuilder(cmdArray);
processBuilder.redirectErrorStream(true);
但它无法读取错误的文件:没有这样的文件或目录.. 你能不能给我一些方法来提供sh文件作为ProcessBuilder的输入参数。
答案 0 :(得分:0)
您可能希望使用/bin/sh
而非sh
。
此外,正如@ user432已经提到的,如果您的shell脚本不在Java应用程序的工作目录中,您可能希望使用其ProcessBuilder
方法显式设置directory(String)
的工作目录。或者,您可以指定shell脚本的绝对路径,而不仅仅是./
。