【求助】java调用二进制执行文件产生阻塞,谢谢
我在作一个Java调用一个c语言编译的二进制程序,该二进制程序读入大量图片,同时产生大量数据以及图片,可是每次该调用运行到一定数据就会发生阻塞,我写的一小段的测试代码如下,单独运行该二进制文件可以顺利处理数据,可是调用时就会运行中就没有反映了。class Test1{
String cmd1="./GenDep depImg"; //GenDep就是要调用的二进制文件,单独运行该
//二进制文件没有问题,但是下面的调用会在中途没有反映
Test1(){
try {
Process p1 = Runtime.getRuntime().exec(cmd1);
System.out.println("Starting...);//处理过程中就会卡死到这里
p1.waitFor();
System.out.println("End!");
}
catch (Exception e1) {
System.err.println(e1);
System.exit(1);
}
}
public static void main(String[] args) {
Test1 newtest=new Test1();
}
}
不知道是进程创建的问题,还是数据量太大应该处理exception的问题,该二进制程序需要运行15分钟左右,希望高人指点一下,不尽感谢。
【求助】java调用二进制执行文件产生阻塞,谢谢
InputStream stderr = p.getErrorStream();InputStreamReader isr = new InputStreamReader(stderr);
BufferedReader br = new BufferedReader(isr);
String line = null;
while ( (line = br.readLine()) != null)
System.out.println(line); 怎么?有人解决吗?我在Android中也遇到这个问题了
调用一个shell,shell在后台运行了,就出现了这个问题。
一直说这个程序中无反应了,要不要关闭!
这个应该算是哪里的问题呢?
很纠结!
真的很就纠结!!!
问题解决了,我用的是网上盛传的RootCmd.java中的这个Re_RootCommand函数来调用的命令shell,shell的输出只有一个数。
这儿改进一下就可以了:
String strResult = "", strTmp = localDataInputStream.readLine();
while (strTmp != null) {
strResult += strTmp;
strTmp = localDataInputStream.readLine();
}
页:
[1]