Предоставление файла sh в качестве входного параметра для ProcessBuilder

#java #processbuilder

#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. Установите directory with processbuilder.directory(String) в каталог, в котором находится ваш файл sh.

Ответ №1:

Возможно, вы захотите использовать /bin/sh вместо just sh .

Кроме того, как уже упоминалось @user432, вы можете явно задать рабочий ProcessBuilder каталог s, используя его directory(String) метод, если ваш сценарий оболочки отсутствует в рабочем каталоге приложения Java. В качестве альтернативы вы можете указать абсолютный путь к вашему сценарию оболочки, а не только ./ .