将sh文件作为输入参数提供给ProcessBuilder

时间:2014-06-13 09:45:46

标签: java processbuilder

我的代码就像这样

final String[] cmdArray = {
 "sh", "./invoke_payment_files_generator.sh",
 String.valueOf(paymentBatchId)
 };


 final ProcessBuilder processBuilder = new ProcessBuilder(cmdArray); 

processBuilder.redirectErrorStream(true);

但它无法读取错误的文件:没有这样的文件或目录.. 你能不能给我一些方法来提供sh文件作为ProcessBuilder的输入参数。

1 个答案:

答案 0 :(得分:0)

您可能希望使用/bin/sh而非sh

此外,正如@ user432已经提到的,如果您的shell脚本不在Java应用程序的工作目录中,您可能希望使用其ProcessBuilder方法显式设置directory(String)的工作目录。或者,您可以指定shell脚本的绝对路径,而不仅仅是./