Вы игнорируете все сообщения об ошибках, генерируемые вашим сценарием.
Удалите все использования p.getInputStream()
и замените его вызовом inheritIO () :
try {
ProcessBuilder pb = new ProcessBuilder(
"/Users/Folder/AnotherFolder/Another/Final/clone.sh");
pb.inheritIO();
p = pb.start();
p.waitFor();
} catch (IOException | InterruptedException) {
e.printStackTrace();
}
Когда вы звонили p.getInputStream()
, вы читали только стандартный вывод процесса. inheritIO()
приведет к тому, что как стандартный вывод, так и стандартная ошибка дочернего процесса появятся в собственном стандартном выводе процесса Java и стандартной ошибке. Это позволит вам увидеть все диагностические сообщения, напечатанные скриптом. В частности, сообщения об ошибках обычно появляются при стандартной ошибке, а не при стандартном выводе.