Java runtime.exec 导致程序崩溃

标签 java exec decode wireshark

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

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

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

最佳答案

你说停止工作?

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

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

关于Java runtime.exec 导致程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6168598/

相关文章:

java - 属性或枚举或静态最终

java - 我得到了用户信息,如何从墙上获取用户帖子?

php - 在单个 exec php 语句中执行两个 shell 命令

mysql - 安卓 :Retrieve Polyline From Mysql Database

r - 在 R 中解码 URL 字符串向量

ffmpeg - 使用 ffmpeg API 进行 mp3 解码(缺少 header )

java - 我们应该如何设计不同内部微服务之间的通信

java - Spring Data + MongoDB 无效引用错误

javascript string exec奇怪的行为

c - 如何从文件描述符执行程序?