java.util.Timer t = new Timer();t.shechde(new TaskA(), new Date(107,7,25,8,0,0), 1000*60*60*24);application.setAttribute("task", t); -------------------------------- class TaskA() extends TimerTask{ public void run(){ Date date = new Date(); if(date.getDate()==10){ doSomething(); } }}
jdring.非常好用!上网下个jdring.jar 下面是类似代码: private static AlarmManager mgr = new AlarmManager(); private static AlarmEntry entry; //AlarmManager.addAlarm(minute, hour, day of month, month, day of week, year,AlarmListener) entry= mgr.addAlarm(-1 , -1 , new Integer(10), -1, -1, -1, new ExecuteJob());
jdring.非常好用!上网下个jdring.jar 下面是类似代码: private static AlarmManager mgr = new AlarmManager(); private static AlarmEntry entry; //AlarmManager.addAlarm(minute, hour, day of month, month, day of week, year,AlarmListener) entry= mgr.addAlarm(-1 , -1 , new Integer(10), -1, -1, -1, new ExecuteJob());
//}private static AlarmManager mgr = new AlarmManager(); /s/AlarmEntry entry;mgr.addAlarm(00,12,-1,-1,-1,-1,new AlarmListener(){ public void handlnAlarm(AlarmEntry entry){ System.out.println("Lunch time !"); } }); }
还有上面一段代码为: package com.jalios.jdring;import java.util.TimerTask; import java.util.Timer; import java.util.*; import com.jalios.jdring.*;public class timeTask{ public static void main(String args[]){ Timer t = new Timer(); t.shechde(new TaskA(), new Date(107,7,25,8,0,0), 1000*60*60*24); application.setAttribute("task", t); } } class TaskA extends TimerTask{ public void run(){ Date date = new Date(); if(date.getDate()==10){ System.out.println("It's time for lunch !!! "); } } }错误为: timeTask.java:11: cannot resolve symbol symbol : method shechde (com.jalios.jdring.TaskA,java.util.Date,int) location: class java.util.Timer t.shechde(new TaskA(), new Date(107,7,25,8,0,0), 1000*60*60*24); ^ timeTask.java:12: cannot resolve symbol symbol : variable application location: class com.jalios.jdring.timeTask application.setAttribute("task", t); ^ Note: timeTask.java uses or overrides a deprecated API. Note: Recompile with -deprecation for details. 2 errors执行起来有两个问题,请大家给点意见,谢谢!!!
Timer无法指定具体的时间执行任务。所以采用quartz是不错的选择。 下载个quartz.jar cron表达式:每月的10号: 0 0 0 10 * ? 两个步骤: 1:编写你需要执行的任务: SimpleQuartzJob.java: public class SimpleQuartzJob implements Job { public SimpleQuartzJob() { } public void execute(JobExecutionContext context) throws JobExecutionException { System.out.println("In SimpleQuartzJob - executing its JOB at " + new Date() + " by " + context.getTrigger().getName()); } }2:设置cron表达式,run it: CronTriggerRunner.java:import org.quartz.CronExpression; import org.quartz.CronTrigger; import org.quartz.JobDetail; import org.quartz.Scheduler; import org.quartz.SchedulerException; import org.quartz.SchedulerFactory; import org.quartz.impl.StdSchedulerFactory;/** */ public class CronTriggerRunner { public void task() throws SchedulerException { // Initiate a Schedule Factory SchedulerFactory schedulerFactory = new StdSchedulerFactory(); // Retrieve a scheduler from schedule factory Scheduler scheduler = schedulerFactory.getScheduler();
// current time long ctime = System.currentTimeMillis();
// Initiate JobDetail with job name, job group, and executable job class JobDetail jobDetail = new JobDetail("jobDetail1", "jobDetailGroup1", SimpleQuartzJob.class); // Initiate CronTrigger with its name and group name CronTrigger cronTrigger = new CronTrigger("cronTrigger", "triggerGroup1"); try { // setup CronExpression CronExpression cexp = new CronExpression("0 0 0 10 * ?"); // Assign the CronExpression to CronTrigger cronTrigger.setCronExpression(cexp); } catch (Exception e) { e.printStackTrace(); } // schedule a job with JobDetail and Trigger scheduler.scheduleJob(jobDetail, cronTrigger);
// start the scheduler scheduler.start(); }
public static void main (String args[]) { try { CronTriggerRunner qRunner = new CronTriggerRunner(); qRunner.task(); } catch (Exception e) { e.printStackTrace(); } System.out.println("is run!"); }
--------------------------------
class TaskA() extends TimerTask{
public void run(){
Date date = new Date();
if(date.getDate()==10){
doSomething();
}
}}
下面是类似代码:
private static AlarmManager mgr = new AlarmManager();
private static AlarmEntry entry;
//AlarmManager.addAlarm(minute, hour, day of month, month, day of week, year,AlarmListener)
entry= mgr.addAlarm(-1 , -1 , new Integer(10), -1, -1, -1, new ExecuteJob());
new ExecuteJob())是你要执行的东西
int thisday=cal.get(Calender.DATE);
if(thisday==10)
{
.........
}
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd"><beans>
<bean id="exampleBusinessObject" class="com.dhcc.wms.quartz.Emmagee"/> <bean id="methodInvokingJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject"><ref bean="exampleBusinessObject"/></property>
<property name="targetMethod"><value>doIt</value></property>
<property name="concurrent"><value>false</value></property>
</bean> <bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail"><ref bean="methodInvokingJobDetail"/></property>
<property name="cronExpression"><value>0 0/2 12 * * ?</value></property>
</bean> <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref local="cronTrigger"/>
</list>
</property>
</bean>
</beans>自己修改你要执行的类文件 和时间属性就可以了
网址:www.fechat.com
声明一下,它不是Spring的
是一个独立的开源项目
上sourceForge看一下
下面是类似代码:
private static AlarmManager mgr = new AlarmManager();
private static AlarmEntry entry;
//AlarmManager.addAlarm(minute, hour, day of month, month, day of week, year,AlarmListener)
entry= mgr.addAlarm(-1 , -1 , new Integer(10), -1, -1, -1, new ExecuteJob());
new ExecuteJob())是你要执行的东西可是这段代码执行起来好像有点问题错误为:
Alarm.java:13: <identifier> expected
mgr.addAlarm(00,12,new Integer(10),-1,-1,-1,new AlarmListener(){
^
1 error
这是怎么回事啊,请各位大哥给点意见啊!!!谢谢!!!
我的完整的代码是:
package com.jalios.jdring;import com.jalios.jdring.*;public class Alarm{
//public static void main(String args[]){
//}private static AlarmManager mgr = new AlarmManager();
/s/AlarmEntry entry;mgr.addAlarm(00,12,-1,-1,-1,-1,new AlarmListener(){
public void handlnAlarm(AlarmEntry entry){
System.out.println("Lunch time !");
}
});
}
package com.jalios.jdring;import java.util.TimerTask;
import java.util.Timer;
import java.util.*;
import com.jalios.jdring.*;public class timeTask{
public static void main(String args[]){
Timer t = new Timer();
t.shechde(new TaskA(), new Date(107,7,25,8,0,0), 1000*60*60*24);
application.setAttribute("task", t);
}
}
class TaskA extends TimerTask{
public void run(){
Date date = new Date();
if(date.getDate()==10){
System.out.println("It's time for lunch !!! ");
}
}
}错误为:
timeTask.java:11: cannot resolve symbol
symbol : method shechde (com.jalios.jdring.TaskA,java.util.Date,int)
location: class java.util.Timer
t.shechde(new TaskA(), new Date(107,7,25,8,0,0), 1000*60*60*24);
^
timeTask.java:12: cannot resolve symbol
symbol : variable application
location: class com.jalios.jdring.timeTask
application.setAttribute("task", t);
^
Note: timeTask.java uses or overrides a deprecated API.
Note: Recompile with -deprecation for details.
2 errors执行起来有两个问题,请大家给点意见,谢谢!!!
下载个quartz.jar
cron表达式:每月的10号: 0 0 0 10 * ?
两个步骤:
1:编写你需要执行的任务:
SimpleQuartzJob.java:
public class SimpleQuartzJob implements Job { public SimpleQuartzJob() {
} public void execute(JobExecutionContext context) throws JobExecutionException {
System.out.println("In SimpleQuartzJob - executing its JOB at "
+ new Date() + " by " + context.getTrigger().getName());
}
}2:设置cron表达式,run it:
CronTriggerRunner.java:import org.quartz.CronExpression;
import org.quartz.CronTrigger;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SchedulerFactory;
import org.quartz.impl.StdSchedulerFactory;/**
*/
public class CronTriggerRunner { public void task() throws SchedulerException
{
// Initiate a Schedule Factory
SchedulerFactory schedulerFactory = new StdSchedulerFactory();
// Retrieve a scheduler from schedule factory
Scheduler scheduler = schedulerFactory.getScheduler();
// current time
long ctime = System.currentTimeMillis();
// Initiate JobDetail with job name, job group, and executable job class
JobDetail jobDetail = new JobDetail("jobDetail1", "jobDetailGroup1", SimpleQuartzJob.class);
// Initiate CronTrigger with its name and group name
CronTrigger cronTrigger = new CronTrigger("cronTrigger", "triggerGroup1");
try {
// setup CronExpression
CronExpression cexp = new CronExpression("0 0 0 10 * ?");
// Assign the CronExpression to CronTrigger
cronTrigger.setCronExpression(cexp);
} catch (Exception e) {
e.printStackTrace();
}
// schedule a job with JobDetail and Trigger
scheduler.scheduleJob(jobDetail, cronTrigger);
// start the scheduler
scheduler.start();
}
public static void main (String args[])
{
try {
CronTriggerRunner qRunner = new CronTriggerRunner();
qRunner.task();
} catch (Exception e)
{
e.printStackTrace();
}
System.out.println("is run!");
}
}