如何解决Java runtime.exec导致程序崩溃
| 我正在尝试使用Java运行外部程序Decoder.exe: Runtime.getRuntime()。exec(\“ C:\\ fullpath-and-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
弗雷德里克
解决方法
本教程可以帮助您http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html?page=1
和
流程构建器
和
Oracle API
也许我的问题将String作为参数从一个Java App传递到另一个Java App
, 你说停止工作了吗?
解码器.exe是将输出写入stderr还是stdout?在这种情况下,您必须读取这些流,因为这些流的缓冲区非常小,如果这些缓冲区已满,则执行将停止。
这是一篇很棒的文章,虽然很旧,但是仍然适用:
当Runtime.exec()不会
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。