Java runtime.exec导致程序崩溃

时间:2011-05-29 15:34:52

标签: java exec decode wireshark

我正在尝试使用java运行外部程序Decoder.exe: 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停止工作。当在单独的cmd窗口中运行时,程序Decoder.exe将完美执行。

有没有人遇到类似问题?当java运行exec和在cmd.exe中运行程序时有什么不同?有没有已知的解决方法,或者我只是在某个地方犯了错误?

非常感谢任何帮助! BR, 弗雷德里克

2 个答案:

答案 0 :(得分:2)

停止工作你说?

decoder.exe是否将输出写入stderr或stdout?在这种情况下,您必须读取这些流,因为流的缓冲区非常小,如果这些缓冲区已满,则执行将停止。

这是一篇很棒的文章,虽然很旧,但它仍然有效: When Runtime.exec() won't

答案 1 :(得分:1)