现在有这样的一个需求1、先通过Runtime.getRuntime().exec()执行一段 vb脚本2、然后脚本执行完之后弹出一个提示窗口。
但现在有个问题,
Runtime.getRuntime().exec()执行一段 vb脚本的时候,他不管你执行没执行完直接就弹出窗口了。
请问有什么能监测到脚本执行进度的方法呢?

解决方案 »

  1.   

    如果你的脚本有输出,试试这个,如果没有,那就不知道了...........int c;
    String cmd = "....";
    Process child = Runtime.getRuntime().exec(cmd);
    // 获得运行的输出
    InputStream child_in = child.getInputStream();
    String strReturn = "";while ((c = child_in.read()) != -1) {
        strReturn += (char) c;
    }
    child_in.close(); //得到运行的返回结果
      

  2.   

    你要用waitFor等待你的vb脚本执行结束以后再谈出窗口
    for example
    Process p = Runtime.getRuntime().exec("vb脚本");
    p.waitFor();
    JOptionPane.showMessageDialog(null, "finish");
      

  3.   

    你不光拿inputstream, errorStream也要拿哦, 不然你程序有死锁情况的
      

  4.   

    谢谢楼上的童鞋,意见都很中肯。1楼的建议:此脚本没有输出。2楼童鞋的做法很对症,不过我用的是一个包装过的程序,里面有这个
    exitValue = process.waitFor();3楼同学说的在包装程序中都有。
      

  5.   

    再说明下先通过Runtime.getRuntime().exec()执行一段 vb脚本
    其实就是执行 命令: start vb脚本。所有的命令都在vb脚本里面。感觉程序执行完命令start vb脚本。
      

  6.   

    设个变量等于false,执行完了之后等于true,当弹出的时候判断此变量的值