I agree, leaving a Java programme running constantly in order that it can do something at a particular time is not really good practice. If you're using windows for example, write your Java class complete with a main() method.
Then you can simply create a .bat file containing the java command to run the application.
Now in windows, using 'scheduled tasks' you can set the batch file to run once a day or whatever and your Java program will run.
I think
