如何在每月的10号让程序做某一件事

解决方案 »

  1.   

    定时任务调度,你可以使用cron
      

  2.   

    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();
        }
      }}
      

  3.   

    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());
     
    new ExecuteJob())是你要执行的东西
      

  4.   

    windows操作系统自带一个"任务计划",可以把你的程序放在"任务计划"里,设定每月的10号启动运行程序。
      

  5.   

    Calender cal=Calender.getInstance();
    int thisday=cal.get(Calender.DATE);
    if(thisday==10)
    {
        .........
    }
      

  6.   

    <?xml version="1.0" encoding="UTF-8"?>
    <!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>自己修改你要执行的类文件 和时间属性就可以了
      

  7.   

    是个java应用程序,放在unix下运行的
      

  8.   

    超酷签名,点击这里和我直接沟通
    网址:www.fechat.com
      

  9.   

    要么用定时线程,要不就通过系统配置实现,比如Unix里头的CronTab
      

  10.   

    quartz
    声明一下,它不是Spring的
    是一个独立的开源项目
    上sourceForge看一下
      

  11.   

    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());
     
    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 !");
    }
    });
    }
      

  12.   

    还有上面一段代码为:
    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执行起来有两个问题,请大家给点意见,谢谢!!!
      

  13.   

    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!");
        }
        
    }
      

  14.   

    junliu_0(驴子)d的解决方案最好,等linux下的solution