Metodo java que executa em determiado horário (Resolvido)

Como posso fazer para que um método java execute em determinado horário???

T++

Se estiver usando Linux use o cron ( http://en.wikipedia.org/wiki/Cron )

Poderia usar o cron sim ou o esquema de agendar tarefa no windows, mais queria que a própria aplicação fizesse isso…

Alguem tem alguma sugestão???

Fico no aguardo…

http://www.guj.com.br/posts/list/79706.java

Faça uma thread de baixa prioridade que irá verificar o horário a cada minuto. Quando o horário for igual ao que você quer, a thread é executada.

Ex.:


 @Override
    public void run() {
        
        while (true) {
            try {
                     if (horarioDaMaquina == seuHorario)
                     {
                          //faz algo
                      }
                   Thread.sleep(60000); // 1 minuto
                
            } catch (InterruptedException e) {
            }
        }
    }

Dai, você cria uma instancia dessa classe que tem a thread :


SuaClasseComThread x = new SuaClasseComThread();
x.setPriority(Thread.MIN_PRIORITY);

Espero ter ajudado

Estude a classe TimerTask.

Aconselho utilizar o Quartz!

Em cima do post que finotti passou, fiz o seguinte:

public static final long TEMPO = (1000 * 60); // atualiza o site a cada 1 minuto //****INICIA A TAREFA ELE VERIFICA A CADA UM MINUTO****// System.out.println("inicio"); Timer timer = null; if (timer == null) { timer = new Timer(); TimerTask tarefa = new TimerTask() { public void run() { try { System.out.println("Teste Agendador"); //chamar metodo } catch (Exception e) { e.printStackTrace(); } } }; timer.scheduleAtFixedRate(tarefa, TEMPO, TEMPO); }

E deu certo, valeu pessoal.