使用scheduleAtFixedRate方法
timer.scheduleAtFixedRate(new TimerTask()
{
            public void run()
{
                playSound();      
            }            private void playSound()
{
                System.out.println("Hello,world!");                
            }
        },100,minutes * 30 * 1000);
注意你应该在适当的时候调用timer.cancle()
以结束该线程

解决方案 »

  1.   

    只将dennyjava (Denny) 的程序中的timer.cancel();
    去掉,就会只打印一次Hello,world!,但是程序并没有结束(有光标不停的闪)是为什么??
      

  2.   

    我想让它永远执行下去,直到按下ctl+c
      

  3.   

    顶,这个问题我很感兴趣!
    ----------------------------
                   CSDN一号机器人
      

  4.   

    }, minutes * 30 * 1000 这是什么意思啊?
    你应该让程序暂停30S,啊,程序里没看出来~
      

  5.   

    public void run(){
        while(true){
        playSound();
        try{
            Thread.sleep(minutes * 2000);
        }
        catch(InterruptedException e){
        }
    }
    把run函数改成这样,应该ok的吧:)