首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

怎么判断批处理执行完成

2011-12-08 
如何判断批处理执行完成我有两个批处理1.bat和2.bat,必须要将1.bat执行完之后调用2.bat,不过1.bat执行需要

如何判断批处理执行完成
我有两个批处理1.bat和2.bat,必须要将1.bat执行完之后调用2.bat,不过1.bat执行需要执行一些系统命令,所以大概要执行10秒钟左右,如果程序流水式的执行下来,到2.bat时1.bat中的那些命令还没有执行完,如何解决这个问题,保证1.bat中的那些命令执行完毕后再执行2.bat,谢谢!

[解决办法]
在cmd窗口下,需要保证1.bat和2.bat能执行,否则需要更改一下~~~

Java code
        try {            //用进程执行1.bat            Process process = Runtime.getRuntime().exec("1.bat");            //当前的线程中断,直到process执行完毕            process.waitFor();            //用线程执行2.bat            process = Runtime.getRuntime().exec("2.bat");            process.waitFor();        } catch (IOException e) {            e.printStackTrace();        } catch (InterruptedException e) {            e.printStackTrace();        }
[解决办法]

你试试这么做 

在1.bat文件最后加入一句dos命令:在C盘下创建一个文件“1.batFinish”

在java程序中,建一个线程。线程的功能是 1s钟一次监控C盘是否存在1.batFinish

所以
1.执行1.bat前先用java程序删除c:/1.batFinish
2.启动监控线程
3.运行1.bat
4.监控线程一旦发现存在1.batFinish 立即运行2.bat



[解决办法]
你试试大概这么写
Java code
public void run(){      File f= new File("c:1.batFinish");          if(f.exists()){          f.delete();          }          Runtime.getRuntime().exec("2.bat");          while(true){          f= new File("c:1.batFinish");          if(f.exists()){          Runtime.getRuntime().exec("2.bat");          break;          }          TimeUnit.MICROSECONDS.sleep(1000);      }    } 

热点排行