Java runtime.exec вызывает сбой программы - PullRequest
1 голос
/ 29 мая 2011

Я пытаюсь запустить внешнюю программу Decoder.exe , используя Java: Runtime.getRuntime (). Exec ("C: \ fullpath-and-so-on \ Decoder.exe -h"); вот так:

    try{
        Process p = Runtime.getRuntime().exec("C:\\fullpath-and-so-on\\Decoder.exe -h");
    }
    catch(Exception e){
        e.printStackTrace();
    }

Это работает для всех других программ, которые я пробовал. Но всякий раз, когда я выполняю его из Java, происходит сбой Decoder.exe. Java работает нормально и не генерирует никаких исключений, но вызываемая программа Decodes.exe перестает работать. Программа Decoder.exe отлично работает при запуске в отдельном окне cmd.

Кто-нибудь имел опыт работы с подобной проблемой? Что отличается, когда java запускает exec и когда программа запускается в cmd.exe? Есть известный обходной путь или я просто где-то ошибаюсь?

Очень благодарен за любую помощь! BR, Фредрик

Ответы [ 2 ]

2 голосов
/ 29 мая 2011

Перестаешь работать, говоришь?

Записывает ли decoder.exe вывод в stderr или stdout?В этом случае вы должны прочитать эти потоки, так как буферы для потоков очень малы, и выполнение остановится, если эти буферы заполнятся.

Это отличная статья, она старая, но все еще содержит: Когда Runtime.exec () не будет

1 голос
/ 29 мая 2011
...