windows开机启动后台java程序实现交周报提醒

提示窗口 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

新建MakeWeeklyBoot.bat快捷方式,将其放在开始菜单下的启动项里,实现开机启动

发布了89 篇原创文章 · 获赞 67 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/xl_1803/article/details/100676705