日期:2014-05-18  浏览次数:20749 次

关于java.util.Timer
我想做一个在后台自动执行程序,每个一小时执行一次,代码如下:
import   java.util.Timer;
import   java.util.TimerTask;
import   java.util.Date;

public   class   ImportData{
Timer   timer;
public   ImportData(){
    timer   =   new   Timer( "ImportData ",true);
    timer.schedule(new   TestTimer(),0,60*60*1000);
}
public   static   void   main(String   s[])   {
new   ImportData();
}
              }
     
     
class   TestTimer   extends   TimerTask{
public   void   run(){
System.out.println(new   Date());
}
}
可是编译的时候说没有new   Timer(java.lang.String,boolean)这样的构造函数,在看api里面明明写着Timer(String   name,   boolean   isDaemon)   ,这是为什么啊?
改成new   Timer(true);后就可以了,还有这段程序编译完了以后就自动执行了吗?还是需要什么设置?比如必须在服务里设置,或者是在后台的页面中调用new   ImportData()吗?

------解决方案--------------------
你jdk的版本与你看的api版本不一致。
------解决方案--------------------
当然要调用。

如果你的是web应用可以配置一个servlet,然后配置它的load-on-startup参数,让这个servlet在应用发布成功就开始执行。