java 如何调用导出数据并打包成zip文件

Love_4_J 2010-07-30 03:51:34
大家好:
我要做的是用java调用数据的导出命令导出数据,并要将导出的dmp文件打包成zip文件,并在将dmp文件删除
全部在程序中执行:
我现在的做法是Process process = Runtime.getRuntime().exec(“exp qbj_fasp0721/1@65.55 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文件删除操作的好的方法给推荐下,先谢谢了!!
...全文
338 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
syxty 2010-07-31
  • 打赏
  • 举报
回复
我也遇到过这个问题。
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.
zqfddqr 2010-07-30
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 silence_smile 的回复:]

引用 1 楼 love_4_j 的回复:

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

自己解决了啊,我来接分了
[/Quote]我也要哈哈
Silence_Smile 2010-07-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 love_4_j 的回复:]

晕了,用if(process.waitFor() == 0)就能判断是否执行完成,
[/Quote]
自己解决了啊,我来接分了
Love_4_J 2010-07-30
  • 打赏
  • 举报
回复
晕了,用if(process.waitFor() == 0)就能判断是否执行完成,

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧