How can I schedule my java program(core java file) to run every day at a particular time? I want to schedule it in a Linux server and what is the same for Windows?
8 Answers
For Linux, have a look at cron jobs.
First, install your cronjob by running the following command:
# crontab -e
To run a job everyday 5 minutes after midnight, append the following:
5 0 * * * /path/to/command
Save and close the file.
For Windows, have a look at scheduled tasks.
For linux you can use cron and to do the same thing on windows use quartz-scheduler.
Take a look here for crontab-examples.
you can use Quartz API to Schedule your daily/On-Time Jobs. Following is the link for Quartz API: http://quartz-scheduler.org/documentation/quartz-2.x/tutorials/
You can use linux Cron , yoy can also read good toturial in here: http://www.ibm.com/developerworks/linux/library/l-job-scheduling/index.html
also for scheduling in java program you can use java Api such as Timer class in java util but better approach using scheduling frameworks such as Quartz.
You can schedule your java program(task) using either Operating system services or using java.
1) Using Operating System Scheduler
for Linux, you can use Cron Jobs to schedule your program
for Windows, check the windows scheduler
2) using java.
you can use java.util.Timer class to schedule a TimerTask object.
make a separte thread for timertask and schedule it with
Timer.schedule(TimerTask timertask, Datetime)
please use the following steps: 1. download and configure your application to use any of the Java services products , I use frequently this one : http://wrapper.tanukisoftware.com/doc/english/download.jsp
schedule your software using any of the scheduling APIs available: cron4j (very small & reliable but does not cover all possible use cases) quartz scheduler , the rolls royce for scheduling but now heavyweight learn the Java 1.5 java.util.concurrent.ScheduledExecutorService and register a job (Runnable or Future) into this service depending from the API (all may use Runnable ,some support Future and add their own Job classes)
learn the cron syntax to use any of the listed APIs and schedule your job
Quartz may add a lot of features with vetoable jobs , clustering and other advanced topics
HTH jerome
Since everyone already mentioned the obvious CLI options.
Linux: gnome-schedule:
apt-get install gnome-schedule
Windows: zcron: Download from: http://z-cron.com (been using for years, very effective product).
Mac: CronniX: Download from: http://code.google.com/p/cronnix/
In Unix: You need to write a script with an .sh extension: something as simple as
echo "start"
java usr/bin/MyClass
would work
then add a entry to start it up under the crontab of the user you want to start the script with
In Windows: You need to create a bat file(same as scripts with .bat extension) Schedule in Windows Scheduler
java -jar ...
, the rest is OS-related configuration.