我写了一个java程序(有main函数的那种),我现在想让这个程序每天定时自动运行一遍,望高手指点。。。

2024-11-25 01:44:16
推荐回答(3个)
回答1:

这是不可能实现的。程序不运行,你那定时定在那,有什么去识别。所以好好写程序,不要乱想。

回答2:

把程序编译过,打成jar包,然后利用WINDOWS的计划任务不就行了

回答3:

这里,会用到java的Timer和TimerTask两个类。
下面我写的,你研究下,希望给你提示。
package cn.zkatm.test;

import java.util.Calendar;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;

import cn.zkatm.domain.HistorySensorValuePerHour;
import cn.zkatm.util.FunUtil;
import cn.zkatm.util.JDBCTemplate;

public class TestMain4 {

JDBCTemplate template =new JDBCTemplate();

private String sql="insert into tblHistorySensorValuePerHour values(?,? ,?,'28652',5);";

private int hour=1;

public static void main(String[] args) {
TestMain4 testM=new TestMain4();
TimeTasks tasks =testM.new TimeTasks();
Timer timer =new Timer();
timer.schedule(tasks, new Date(), 1000);
}

class TimeTasks extends TimerTask{

@Override
public void run() {

synchronized (this) {
Date zeroDate=FunUtil.getZeroHourDate();

Calendar cal=Calendar.getInstance();

cal.setTime(zeroDate);

if( hour<24){
cal.set(Calendar.HOUR_OF_DAY, hour);
//Long time=(new Date().getTime())/1000;
Long time=(cal.getTime().getTime())/1000;
Object[] params={"1001","10010043",time,};
//Object[] params={"1001","10010042",time};
template.executeDML(sql, params);
hour++;
}else{
System.exit(0);
}
}

}

}

}