大家好:
     我要做的是用java调用数据的导出命令导出数据,并要将导出的dmp文件打包成zip文件,并在将dmp文件删除
全部在程序中执行:
      我现在的做法是Process process = Runtime.getRuntime().exec(“exp qbj_fasp0721/[email protected] file= c:\interface_data.dmp tables = (tablename)”);
       File f = new File("C:\interface_data.dmp");
       FileInputStream  in = new FileInputStream(f);
       FileOutputStream  out = new ZipOutputStream(new FileOutputStream("C:\interface_data.zip"));
       ......
     
       问题是我单独的执行导出,和打包都可以,就是放在一起就不行了,因为导出还没完成的时候就跟着执行了打包语句
请问下怎么能判断一下是否导出完成,再执行打包操作,
  还有如果大家有其他的导出并打包再将dmp文件删除操作的好的方法给推荐下,先谢谢了!!

解决方案 »

  1.   

    晕了,用if(process.waitFor() == 0)就能判断是否执行完成,
      

  2.   

    我也遇到过这个问题。
    1.final Process compile = Runtime.getRuntime().exec("g++ " + classpath + "Main.cpp" + " -o " + classpath + "Main.exe");
    2.final Process pro = Runtime.getRuntime().exec(classpath + "Main.exe");调用g++编译器。先编译,后运行。还没编译完就运行了。。
    后来查了API,weitFor()就行了。顺便带一句啊,waitFor()接受的是被调用程序的返回值。程序没有返回值话就返回0.可以写个函数试一下。int main(){return 1;}试试,这时waitFor()返回1.