Timer定时通过Runtime的exec方法调用命令“cmd exp..” 后,任务管理器不停的出现“Java.exe”和“cmd.exe”进程

ul5529 2008-08-28 05:00:52
两个类分别是Cmd_Exp和Task:

public class Cmd_Exp {
public static void main(String[] args) {
Timer timer = new Timer();
timer.schedule(new Task(), 1000, 60*1000*60*24);

}
}


public class Task extends TimerTask {
...
...
Runtime tr = Runtime.getRuntime();

String mark = null;

String dt = null;

String nam = null;

public void run() {
try {
loadConfig();
} catch (Exception e1) {
e1.printStackTrace();
}

Date today = new Date(new Date().getTime() - 24 * 60 * 60 * 1000);
SimpleDateFormat ss = new SimpleDateFormat(dateFormat);
dt = ss.format(today);

try {
tr.exec("cmd /c exp " + user + "/" + password + "@" + dbID + " file=" + filePath + partitionPrefix + dt + artitionSuffix + ".dmp tables=" + tableName + ":" + partitionPrefix + dt + partitionSuffix); } catch (IOException e) {
e.printStackTrace();
}
mark = "表分区正在导出";
System.out.println(mark);
}
...
...
}

exec命令中的一些参数是配置文件导入进去的。
这个程序在eclipse里运行没有问题,封装成jar包导出,编成bat执行后,任务管理器就不停的产生java.exe 和cmd.exe进程,
不知道原因!!
...全文
150 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ul5529 2008-08-29
  • 打赏
  • 举报
回复
多谢帮忙的朋友,问题已解决,bat文件是不能命名为exp.bat的
ul5529 2008-08-29
  • 打赏
  • 举报
回复
楼上字打错了,run是抽象方法
ul5529 2008-08-29
  • 打赏
  • 举报
回复
timertask的run方法是抽象类,我继承下来后重写的。

.bat文件是这么写的:

java -cp .;./lib/Exp.jar com.Cmd_Exp
cmd

Exp.jar是导出的jar包
bianmazi 2008-08-28
  • 打赏
  • 举报
回复
楼上如何编成bat的.没那样干过.首先确定你timertask里面的run方法里,调用的其他方法里面是否也有线程存在.那就出问题了.

13,097

社区成员

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

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