Запустить сценарий sh с java, но он не работает без отображения ошибки - PullRequest
1 голос
/ 07 мая 2020

Я пытаюсь l oop в файлы и запускаю сценарий sh в каждом файле, используя JAVA.

for (File file : files) {
            if (file.isDirectory()) {           
                    Runtime.getRuntime().exec("cmd.exe /c start "
                             +file.getAbsolutePath()+"\\creationNoPersisWF12.sh");
                        TimeUnit.SECONDS.sleep(1800);}}

Окно сценария открывается и немедленно закрывается. Однако, когда я пытаюсь выполнить сценарии sh извне, они успешно выполняются.

Мне нужна помощь, пожалуйста.

1 Ответ

0 голосов
/ 07 мая 2020
    Process process = Runtime.getRuntime().exec("cmd.exe /c start "
                             +file.getAbsolutePath()+"\\creationNoPersisWF12.sh");
    if(process.exitValue()!=0){
        throw new RuntimeException(new String(process.getErrorStream().readAllBytes()));
    }

вы должны проверить значение выхода и прочитать поток ошибок для ошибок, так как это процесс сам по себе, он не будет генерировать никаких ошибок сам по себе после вызова процесса, который вы должны проверить, запущен ли он успешно с выходным значением 0 или нет.

...