我建了一个webService 在里面建了一个servlet servlet继承了 ServletContextListener
想启动服务的时候 启动Timer
BaseDAO bdo=new BaseDAO();
Timer timer = new Timer(true);
private  String h="8";
         private String m="45";
         private String s="0";
public void startUp(String hour,String minute,String second)
{
     Calendar calendar = Calendar.getInstance();
  // 时间
  calendar.set(Calendar.HOUR_OF_DAY, Integer.valueOf(hour));
  //分钟
  calendar.set(Calendar.MINUTE,Integer.valueOf(minute));
  //秒
  calendar.set(Calendar.SECOND,Integer.valueOf(second));
  Date time = calendar.getTime();
      timer.schedule(new MyTask(),time);
}
    public void shutDown()
    {
     timer.cancel();
    }

/**
 * 循环的方法
 * @author Administrator
 *
 */
  class MyTask extends java.util.TimerTask{
        public void run(){
         System.out.println("__________________________________________!");
        }
  }代码如上但是不关如何调用 shutdo都无法停止 Timer 希望谁能知道下

解决方案 »

  1.   

    功能介绍就免了。我要原因最好懂web原理的来。是不是servlt和ServletContextListener加载的时候有冲突同时写在一个类里保证了Timer对象是一个所以停止和开始都是一个对象的实力。
      

  2.   

    在说些我想要的效果吧。
      在web服务启动时Timer自动运行到指定时间运行相应的程序,但是运行的时间可以改的,要求改动后按照新的时间运行,以前的时间自动作废!
    谁有更好的方法或思路可以说下
      

  3.   

    在server init()调用timer开始,destory()停止timer()
      

  4.   

    楼上的 我要的效果是服务器运行不是 servlet运行
    至于要代码的 你就别来看 都这样还要代码,这你都不理解…………
      

  5.   

    怎麼調用 shutDown() 的?
    要確認對象是執行 startUp 的那個 instance,而不是 new 一個新的。
      

  6.   

    我是个初学java的菜鸟,想知道java Timer是什么,请高手指教
      

  7.   

     问题解决了。当你懂WEB加载顺序的时候才知道问题不是代码而是内存