提示窗口 MakeWeeklyWindow.bat
@echo off
echo 今天是周四,请上交您的周报,谢谢!
pause
java主程序
注意:使用maven插件打包main-class;
package com.asiainfo.group.bat;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
/**
* 每周四上午10点,弹出提示窗口
* @author 13121
*
*/
public class MakeWeekly {
public static void main(String[] args) throws ParseException, IOException {
String log = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())+" 成功启动交周报定时提醒程序!\n";
FileOutputStream out = new FileOutputStream("E:/ai/周报/log.txt",true);
out.write(log.getBytes());
out.close();
TimerTask task = new TimerTask() {
@Override
public void run() {
/*cmd /c dir 是执行完dir命令后关闭命令窗口.
cmd /k dir 是执行完dir命令后不关闭命令窗口.
cmd /c start dir 会打开一个新窗口后执行dir指令, 原窗口会关闭.
cmd /k start dir 会打开一个新窗口后执行dir指令, 原窗口不会关闭.*/
String cmd = "cmd /c start E:/ai/周报/MakeWeeklyWindow.bat";
try {
Runtime.getRuntime().exec(cmd);
} catch (IOException e) {
e.printStackTrace();
}
}
};
//获取周四上午十点的时间戳
Calendar c = Calendar.getInstance();
int i = c.get(Calendar.DAY_OF_WEEK);
c.add(Calendar.DATE, i+1);
String s = new SimpleDateFormat("yyyy-MM-dd").format(c.getTime());
Date d = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(s+" 10:00:00");
long delay = d.getTime()-new Date().getTime();
long period = 60000;
Timer timer = new Timer();
timer.schedule(task, delay, period);
}
}
后台启动java程序不显示cmd窗口 MakeWeeklyBoot.bat
@echo off
start javaw -jar MakeWeekly.jar
exit