Serviço em java

Olá, preciso criar uma aplicação que em todo ultimo dia do mês acesse meu banco, leia algumas informações e gere algumas novas…
Em Delphi eu fazia isso geralmente criando um serviço para rodar nesse servidor e ele executava o que eu queria, como era um serviço após instalado pouco importava se reiniciasem a maquina ou qualquer outra coisa, ele sempre startava no boot.

Como posso fazer isso em java?
Pensei em fazer uma aplicação normal em java e mandar o S.O. roda-la em datas agendadas, não da pra usar o cron pois a plataforma é Windowns mas creio que o windowns tenha uma ferramenta do tipo…

Então me pergunto, qual seria a melhor maneira de fazer tal ação em java?
Lembrando que preciso que sempre aconteça no utlimo dia do mês, se tiver 31 dias no dia 31 se tiver 30 no dia 30 se tiver 28 no dia 28 e por ai vai.

Grato.

spring batch

Para o seu serviço pesquise sobre: Java Service Wrapper

Sobre agendar uma tarefa em cima de um método pesquise sobre: java.util.Timer e java.util.TimerTask

Abs,
Helder