问题描述
|
我正在尝试使用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()不会