java中调用.bat文件的执行性能问题

newgirl_2008 2008-12-24 03:46:21
我要在java文件中执行数据库备份的操作,于是新建了一个backup.bat批处理文件,内容如下:
exp system/manager@NBCIQKQ file=f:/dbcopy.dmp log=f:/logfile.log
单独执行.bat文件时速度很快,只要几秒钟,可是在java中调用时就很慢,快则十几分钟,
慢时要大半个小时,大大降低了程序的性能。
调用方法为:
process = Runtime.getRuntime().exec("f:/backup.bat");
而且也不知道什么时候会执行完毕。

很困惑为什么在java中调用批处理时执行速度会这么慢。
另外我的数据库跟程序在同一个机子上,排除网络问题。
急啊,希望那位大侠能帮我解惑,将万分感激!
...全文
237 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
newgirl_2008 2008-12-26
  • 打赏
  • 举报
回复
会不会是你占用着程序操作的文件,造成了锁?

我的程序的其它部分可能会访问到同一个数据库,但是
我测试时,并没有运行其它的功能操作,应该不会造成锁吧。
而且作为一个应用的数据库,exp操作应该不会受到影响吧。
newgirl_2008 2008-12-26
  • 打赏
  • 举报
回复
VictorXiang 你好,你说的异步调用如何实现呢?我现在把备份的函数贴出来,
能不能以此为例,详细描述一下,最好能指出如何修改这段代码,谢谢。
public String backup()
{
String result = "";
try {
Process process = Runtime.getRuntime().exec("f:/backup.bat");
result = "操作成功";
} catch (IOException e) {
result="操作失败";
e.printStackTrace();
}
return result;
}
lisl2003 2008-12-24
  • 打赏
  • 举报
回复
会不会是你占用着程序操作的文件,造成了锁?
victorxiang 2008-12-24
  • 打赏
  • 举报
回复
使用异步调用,启动外部命令后就直接返回!
cky417 2008-12-24
  • 打赏
  • 举报
回复
有这样的事

67,541

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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