Process process=Runtime.getRuntime().exec("");中产生停滞(阻塞,blocking),怎么解决?
muiz 2004-07-12 08:50:52 Process process=Runtime.getRuntime().exec("");中产生停滞(阻塞,blocking),怎么解决?
我在Tomcate中运行了一个外部指令,这个指令有多个参数。我用上面的方法调用这个指令,部分代码如下:
Process process=Runtime.getRuntime().exec("growisofs -Z /dev/scd0 -R -J /data/pgdata");
BufferedReader inputBufferedReader=new BufferedReader(new InputStreamReader(process.getInputStream()));
while(inputBufferedReader.ready())
{
System.out.println(inputBufferedReader.readLine());
}
process.waitFor();
上面的指令是刻录光盘,然后刻完后弹出光盘。可是运行的时候就在while这边停掉了,实际上是光盘刻录完成了,但没有弹出光盘。当我把Tomcate关闭后才会弹出光盘。
还有一种情况是当/data/pgdata目录下的文件大小比较小是,比如700MB,就没有问题,当大小是1.5G的时候就会有这种情况。
请问这种情况有什么好的解决方法?