在java程序中,由于多次调用外部bat文件,经常出现IOException:createPipe 这个异常
大家知道是什么原因吗
是不是建立的pipe个数有限制阿
怎么察看现在有多少个pipe可以使用
或者还是其他的原因
谢谢先

解决方案 »

  1.   

    我觉得你的bat需要创建与标准输入,标准输出之类交互的管道,所以你如果执行bat过于频繁的话,会出错
      

  2.   

    虽然...没做过此类的事情...但提示一下..是不是create后。。没close啊........贴点code啊。。
      

  3.   

    什么需求要多次调用外部bat文件???
      

  4.   

    用程序来实现一个软件的配置
    实际就是先准备好数据
    然后调用这个程序自身的bat文件
    这样就有了多次调用代码之后贴上来
    手头暂时没有哪位大虾指导一下,现在只是猜测,没有实际的根据还
      

  5.   

    也有可能是因为bat还在执行,而你又启动了另外的bat或者又启动了这个bat。
    造成了bat无法获得需要的资源。
    因为exec方法启动即返回,并不会等待bat执行结束。
      

  6.   


    谢谢了先
    可能有这种情况
    不过怎么来判断bat是否已经执行完了了
      

  7.   


    Process pa = Runtime.getRuntime().exec("cmd /C copy /Y e:\\document\\a e:\\document\\x");
    pa.waitFor();
    加上waitFor应该就可以了。
      

  8.   

    现在做的是程序执行的时候,有可能会被另外一个线程杀死
    感觉就是这种情况下,容易出现现在这个ioexception
    不过不知道怎么解决
      

  9.   

    exec方法阻塞的问题
    解决了
    把inpurtstream,errorsteam,释放,
    加上waitfor
    就没问题了