java每天執行
Ⅰ java定時器 每天12點 固定執行一個方法
可以使用timer的schele方法實現定時任務,例如:把下面的new Date()參數換為你要定時的時間,創建一個線程執行你的任務
public class 定時 {
public static void main(String[] args) {
Timer timer = new Timer();
timer.schele(new myTest(), new Date());
}
}
class myTest extends TimerTask {
@Override
public void run() {
//你要執行的任務
}
System.out.println(hour + ":" + fen + ":" + sec + ":" + i);
}
修改一下就可以了
Ⅱ JAVA定時執行任務,每天定時幾點鍾執行任務
案例: 你想讓他幾點執行都ok
1.MyJob02
//首先我們需要定義一個任務類,比如為MyJob02 ,
//該類需要繼承Job類,然後添加execute(JobExecutionContext context)方法,在
//這個方法中就是我們具體的任務執行的地方。
//由希望由調度程序執行的組件實現的介面
public class MyJob02 implements Job {
@Override
public void execute(JobExecutionContext context) throws JobExecutionException {
// TODO Auto-generated method stub
// 執行響應的任務.
System.out.println("HelloJob.execute,"+new Date());
}
2.
public static void main(String[] args) throws Exception {
//SchelerFactory 是一個介面,用於Scheler的創建和管理
SchelerFactory factory = new StdSchelerFactory();
//從工廠裡面拿到一個scheler實例
//計劃表(可能翻譯的不太貼切),現在我們有了要做的內容,
//與調度程序交互的主要API
/*
* Scheler的生命期,從SchelerFactory創建它時開始,
到Scheler調用shutdown()方法時結束;Scheler被創建後,
可以增加、刪除和列舉Job和Trigger,以及執行其它與調度相關的操作
(如暫停Trigger)。但是,Scheler只有在調用start()方法後,
才會真正地觸發trigger(即執行job)
*/
Scheler scheler = factory.getScheler();
//具體任務.
//用於定義作業的實例
//JobBuilder - 用於定義/構建JobDetail實例,用於定義作業的實例。
JobDetail job = JobBuilder.newJob(MyJob.class).withIdentity("job1", "group1").build();
//Trigger(即觸發器) - 定義執行給定作業的計劃的組件
//TriggerBuilder - 用於定義/構建觸發器實例
CronTrigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger1", "group1")
.withSchele(CronScheleBuilder.cronSchele("0/1 * * * * ?")).build();
scheler.scheleJob(job, trigger);
scheler.start();
}
Ⅲ java定時器 每天凌晨 固定執行一個方法
二、如果是需要Tomcat啟動就能執行,不需要main方法的定時器的話:
web.xml裡面需要這么配置:
<listener>
<listener-class>
com.InitListener
</listener-class>
</listener>
第一個類:InitListener
package com.listener;
import java.util.Calendar;
import java.util.Date;
import java.util.Timer;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
/**
* 系統啟動時的監聽類 初始化系統數據
*
* @author jhoneder
*
*/
public class InitListener implements ServletContextListener {
public void contextDestroyed(ServletContextEvent arg0) {
// TODO Auto-generated method stub
// context銷毀時,銷毀初始化數據
}
public void contextInitialized(ServletContextEvent event) {
// TODO Auto-generated method stub
try {
goTimmer();
} catch (Exception e) {
System.out.println("失敗:" + e.getMessage());
}
}
private void goTimer() {
Timer timmerTask = new Timer();
Calendar calEnviron = Calendar.getInstance();
// 每天的02:00.am開始執行
calEnviron.set(Calendar.HOUR_OF_DAY, 2);
calEnviron.set(Calendar.MINUTE, 00);
// date為制定時間
Date dateSetter = new Date();
dateSetter = calEnviron.getTime();
// nowDate為當前時間
Date nowDateSetter = new Date();
// 所得時間差為,距現在待觸發時間的間隔
long intervalEnviron = dateSetter.getTime() - nowDateSetter.getTime();
if (intervalEnviron < 0) {
calEnviron.add(Calendar.DAY_OF_MONTH, 1);
dateSetter = calEnviron.getTime();
intervalEnviron = dateSetter.getTime() - nowDateSetter.getTime();
}
// 每24小時執行一次
timmerTask.schele(new UseTimer(timmerTask), intervalEnviron, 1 * 1000 * 60 * 60 * 24);
}
}
第二個類:
package com.listener;
import java.util.Timer;
import java.util.TimerTask;
/**
* 被調用執行類
*
* @author Administrator
*
*/
public class UseTimer extends TimerTask {
Timer timer = new Timer();
public UseTimer(Timer timer) {
this.timer = timer;
}
/*
* 被調用具體的方法
*/
public void run() {
System.out.println("開始具體執行!");
}
}
不懂得話可以追問!