比如让系统在整点通知我的java程序
打印一个时间
不用定时器,java如何实现?

解决方案 »

  1.   

    没有直接的通知。要么就是在操作系统做个定时任务,要么就是你的程序定时检查下当前时间(或者借助第三方包的定时任务,比如Quartz啥的)。
      

  2.   

    神马意思?
    是系统到整点时间就启动一个java程序打印还是什么?
    如果是这样,就设置系统的task,到整点调用java xxx 启动程序就可以了
    如果是自己在程序里做整点通知,不用timer的话就用线程吧
      

  3.   

    Timer试试呢。
    还有为什么不用windows的task来实现。
      

  4.   

    用Timer挺好的。
    public class TimerDemo {

    /**
     * 得到下一个整点时间
     * @return
     */
    public static Date getNextFullTime(){
    Calendar calendar = Calendar.getInstance();
    Date date = null;
    if(calendar.get(Calendar.MINUTE) == 0 ){
    date =  calendar.getTime();
    }else{
    date =  new Date(calendar.get(Calendar.YEAR) - 1900, calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH), calendar.get(Calendar.HOUR_OF_DAY) + 1, 0 , 0);
    }
    return date;
    }

    public static void main(String[] args) {
    Timer timer = new Timer();
    timer.schedule(new TimerTask() {
    public void run() {
    JOptionPane.showMessageDialog(null, "时间到  " + new Date().toLocaleString());
    }
    }, TimerDemo.getNextFullTime() , 3600000);
    }

    }