日期:2014-05-20  浏览次数:20781 次

高分:如何让程序每天固定在9点执行?
在网上看了资料都是说用Timer   和TimerTask   ,但我试了就是不行。那两个类只是固定时间间隔执行,无法固定在每天的9点啊!
求救高手啊,   写出具体实现代码最好了。谢谢~~

------解决方案--------------------
使用WinService,根据时间来启动程序。
------解决方案--------------------
Timer timer=new Timer();
Date initDate=new Date();
initDate.setHours(9);
timer.scheduleAtFixedRate(new TimerTask(){//每日更新上一天记录
public void run() {
System.out.println( "更新 ");
}},initDate,24*60*1000*60);//
不过这样只能是9:00左右可能会有点误差
------解决方案--------------------
java.util.Calendar c=java.util.Calendar.getInstance();
c.set(java.util.Calendar.HOUR_OF_DAY,9);
c.set(java.util.Calendar.MINUTE,0);
c.set(java.util.Calendar.SECOND,0);
c.set(java.util.Calendar.MILLISECOND,0);
java.util.Timer t=new java.util.Timer();
TheTimerTask task=new TheTimerTask();
t.schedule(task,0,1000*60*60*24);

class TheTimerTask extends TimerTask{
public void run()
{
System.out.println( "wo shi ruo zhi ");
}
}
------解决方案--------------------
windows系统有个计划管理器。设置==》性能和维护==》任务计划==》添加任务计划
------解决方案--------------------
或者:
java.util.Calendar c=java.util.Calendar.getInstance();
c.set(java.util.Calendar.HOUR_OF_DAY,9);
c.set(java.util.Calendar.MINUTE,0);
c.set(java.util.Calendar.SECOND,0);
c.set(java.util.Calendar.MILLISECOND,0);
java.util.Timer t=new java.util.Timer();
TheTimerTask task=new TheTimerTask();
t.schedule(task,c.getTime(),1000*60*60*24);

class TheTimerTask extends TimerTask{
public void run()
{
System.out.println( "wo shi ruo zhi ");
}
}
------解决方案--------------------
用计划任务不行么?
------解决方案--------------------
有个OpenSource的项目叫quartz,可以很好的实现你的要求,
你去研究下吧,很不错的
------解决方案--------------------
1.设置CMOS,让机器每天8点45自动开机.
2.设置操作系统自动登录.
3.设置自动启动运行环境(服务,自启动项目,RUN...).
4. "Timer 和TimerTask ,但我试了就是不行。那两个类只是固定时间间隔执行,无法固定在每天的9点啊! " 这个就不想说了,还是自己去想吧.我们能得到的只是材料,用材料去做出各种各样的产品,如果什么都是现成的,还要我们干什么呢???
------解决方案--------------------
楼上的兄弟说的有道理啊,现在的人往往都太懒了
------解决方案--------------------
用quartz肯定可以的.功能非常强大.实在不行就自己写一个线程去扫描了.
------解决方案--------------------
quartz比较好 可以试一试
------解决方案--------------------
利用TIMER每隔时间检测一次java.util.Calendar类里的方法判断是不是九点
------解决方案--------------------
我就用quartz定时同步数据