Я пытаюсь запустить скрипт с помощью apache-commons-exec, который был реализован с использованием java-аппроксимации для запуска. Этот скрипт выполняется на рабочем сервере (Linux), но мне нужно проверить его в моем локальном хосте, чтобы убедиться, что все работает нормально.Выполнение shell-скрипта с параметрами using apache.commons.exec в Windows
Вот мой код для запуска Cygwin и этот код работает в cmd.exe, но она не работает, когда я пытаюсь запустить его с помощью commons.exec:
OutputStream outputStream = new ByteArrayOutputStream();
DefaultExecutor exec = new DefaultExecutor();
exec.setWatchdog(new ExecuteWatchdog(1000));
PumpStreamHandler streamHandler = new PumpStreamHandler(outputStream);
exec.setStreamHandler(streamHandler);
CommandLine cmdLine = CommandLine.parse("C:\\cygwin64\\bin\\bash");
cmdLine.addArgument("-c");
cmdLine.addArgument("/cygdrive/c/dev/launch.sh");
int exit = exec.execute(cmdLine);
logger.warn("Job exit: " + exit);
Она возвращает 1 и нет выхода или ошибка журнала:
org.apache.commons.exec.ExecuteException: Process exited with an error: 1 (Exit value: 1)
Есть что-то не хватает? Как я могу правильно поймать вывод?
... проверить его в среде Linux. У сценария bash может быть бит-бит #!/Bin/bash и липкий uid бит chmod s + u. (Windows cygwin среда запускается с bash --login -i) –
Невозможно поблагодарить вас. – mannuk