你在读入数据后,调用flush(0函数将缓冲区刷新一下看看,因为你用了缓冲了.
其它方面就不太懂!

解决方案 »

  1.   

    呵呵。老问题了,runtime的io要自己控制的。搞个线程去取空那些输出,比如stdou和stderr
      

  2.   

    http://community.csdn.net/Expert/topic/3165/3165480.xml?temp=.8489801
      

  3.   

    参照楼上给出的贴子,加了以下几个语句。
    StreamGobbler errorGobbler = new StreamGobbler(p.getErrorStream(), "ERROR");            
            
            // kick off stderr
            errorGobbler.start();
            
            StreamGobbler outGobbler = new StreamGobbler(p.getInputStream(), "STDOUT");
            // kick off stdout
            outGobbler.start();
    运行几乎很快,但光标还是停在matlab上。
    不知加在何处,请takecare(大厅)指点。 
      

  4.   

    没有细看你的代码,应该在你从runtime获取process后,就让那些gobbler启动起来。
    但是我觉得里头有个流应该是你需要的,所以需要将那个gobbler将截获的输出重定向到你要的那个流里。
      

  5.   

    我是加在open()方法中的p = Runtime.getRuntime().exec(startcmd);之后,一下就出来Matlab界面了,若是不加,则很慢才出来。takecare(大厅)兄,能否抽空帮看一下,这个程序也是从网上找来的,我对线程之类的不大懂。