写一个JAVA程序在指定的时间自动运行:如每天零晨开始运行.(100分)

  • 主题发起人 主题发起人 langzi_zhang
  • 开始时间 开始时间
L

langzi_zhang

Unregistered / Unconfirmed
GUEST, unregistred user!
请大侠指点呀.
 
计时操作阿。
 
代码:
import java.util.*;
public class MyTest extends Thread {
	Timer timer;
	int defaultHour;//开始时钟(小时)
	int defaultMin;//开始分钟(分钟)
	int defaultInterval;
//时间间隔(分钟)
	Date date;//开始时间
	Calendar curCalendar;
	Calendar calendar;//
	public MyTest() {
		defaultHour = 0;
		defaultMin = 0;
		defaultInterval = 24*60;
		curCalendar = Calendar.getInstance();
		calendar = Calendar.getInstance();
		calendar.set(Calendar.HOUR_OF_DAY, defaultHour);
		calendar.set(Calendar.MINUTE, defaultMin);
		while (calendar.before(curCalendar)) {
			calendar.add(Calendar.MINUTE, defaultInterval);
			System.out.println(calendar.getTime().toString());
		}
		date = calendar.getTime();
		timer = new Timer();
	}
	public void run() {
		System.out.println("=========");
		System.out.println(curCalendar.getTime().toString() + " schedule started.");
		System.out.println(date.toString() + " first schedule start.");
		System.out.println("=========");
		timer.schedule(new InterfaceTask(), date, defaultInterval * 60 * 1000);
	}
	public static void main(String[] args) {
		try{
			new MyTest().start();
		}catch (Exception e) {
			e.printStackTrace();
		}
		
	}
	class InterfaceTask extends TimerTask {
		public void run() {
			System.out.println("=========");
			System.out.println(Calendar.getInstance().getTime().toString() + " scheduledo
ing start!");
			try { 
				//TODO:
				System.out.println("done");
			} catch (Exception e) {
				e.printStackTrace();
			}
			System.out.println(Calendar.getInstance().getTime().toString() + " scheduledo
ing end!");
			System.out.println("=========");
		}
	}
}
 
Sorry 看错了
 
没必要,定时器启动程序这个工作应该是由操作系统完成的。
unix有cron
windows有at.
 
现在有些人何必把问题想的这么复杂呢,要向曹大学习啊。
TO:曹大侠
好久不见,最近好吗??
 
赫赫,snjat大虾好。几天不见,你的分数又呼哧呼哧向上涨,早把我甩在后面啦![8D]
 
to:曹晓钢
你可以把你的方法说的清楚一些吗?
我是在linux下运行的,上面的代码原理和我的设想是一样的,只是还没有来的及调试。
 
crontab -e
输入:
0 0 0 * * yourStart.sh
yourStart.sh里面,写上
java yourJob
 
to:曹晓钢
给你分50了,哈哈,谢谢!
 
后退
顶部