如果你是用
System.exec()来调用bat的话,你可以分析bat执行过程的输出信息。
你可以规定bat执行完后输出一个什么的特殊信息。
然后当解析到该信息,就认为执行成功,否则失败。而且,java执行bat的时候会等待它执行结束才执行下一条代码的  :o

解决方案 »

  1.   

    随便用bat打印一个字符串出来啊
    echo end
    使用Process类.然后通过InputStream 得到bat打印的东西。如果=end.表示bat完毕
    public class Test implements Runnable
    { int i;
    public boolean b=true;
    Process p =null;
    public Test()
    {
    try
    {
    p=Runtime.getRuntime().exec("abc.bat");
    new Thread(this).start();
    }
    catch(Exception e)
    {System.out.println(e);}
    }
    public static void main(String args[])
    {
     Test t = new Test();
     
    }
    public void run()
    { try
    {  InputStream in = p.getInputStream();
    BufferedReader br = new BufferedReader(new InputStreamReader(in));
    while(true)
    {
    String strline=br.readLine();
    if (strline.equals("end")) 
    {
    System.out.println("完毕");
    return;
    }
    }
      }
      catch(Exception e){}
    }


    }
      

  2.   

    @echo off
    exp aa/aa@a tables=(a) file=f:\llh\a.dmp grants=y indexes=y rows=y
    @echo end
    exit
    如果我执行这样的批处理就读不到这个END了