关于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在应用发布成功就开始执行。