本人项目中有个java程序(A),需要调用另一个shell script(B),在B中又去执行一个C++程序.out文件(C),如果C运行正常,会通过B向A传回一个返回码。现在的问题是C程序中如果存在死循环,B执行不完,A也拿不到返回码,程序没反应。现在希望在A程序中等待一段时间后如果没有返回直接结束进程,不知如何实现,望哪位高手指点一下,感激不尽。谢谢!
A程序中执行B采用的方法是:
Process proc=Runtime.getRuntime().exec(cmd); //调用这个shell script(B)
proc.waitFor();
rescode=proc.exitValue();
------解决方案--------------------
写一个线程,过了一段时间如果A没结束就调用kill去杀死C或者B
------解决方案--------------------
Process proc=Runtime.getRuntime().exec(cmd); //跟这个写法一样
用java调用kill
------解决方案--------------------