重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
你的意思好像是说这个程序需要一天24小时不间断执行的,呵呵!
创新互联专注于企业营销型网站建设、网站重做改版、颍泉网站定制设计、自适应品牌网站建设、成都h5网站建设、商城网站开发、集团公司官网建设、成都外贸网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为颍泉等各大城市提供网站开发制作服务。
可以这样解决:
首先,把你启动程序的命令编辑到一个bat
批处理文件
中;
然后,你的java类里面需要的核心代码是:
Runtime.getRuntime().exec("cmd.exe
/c
start
C:\\clean.bat(这个文件改成你做好的批处理文件)");
当然,你的程序中需要判断现在是不是晚上六点,这个就不多说了。
if(晚上6点){
执行上面的代码;
}
用Runtime类可以执行DOS命令来执行一个进程,如下就是打开记事本:
try {
Runtime runtime = Runtime.getRuntime();
runtime.exec("notepad.exe");
} catch (IOException e) {
e.printStackTrace();
}
Thread是线程,不是进程,楼主可以去查查线程和进程的区别。
运行main函数时,就启动了一个java.exe进程,对应的dos命令就是java xxx
楼主可以用Runtime 来执行,java xxx,只要路径正确,就会启动另一个java进程。
开机自启动
2个方式
1 是修改注册表
2 是复制到启动里
方法2 是拷贝文件即可
方法1 Runtime.getRuntime().exec 执行去修改注册表
String regKey = "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run";
String myAppName = "zzzApp";
String exePath = "C:\\sss\\zzz.exe";//开机启动程序本地目录
Runtime.getRuntime().exec("reg "+(isStartAtLogon?"add ":"delete ")+regKey+" /v "+myAppName+(isStartAtLogon?" /t reg_sz /d "+exePath:" /f"));
1、while(true) {
if (当前时间到了11点) {
做你的Task();
}
Thread.sleep(30*1000); //sleep 30 seconds
}
2、写一个.bat文件(里面调用你的Java类),用Windows的计划任务,每天11点执行这个.bat文件。
3、用开源的Quartz框架,专门做定时任务的。可能需要下载,看看文档,写几个配置文件。
推荐第三种,最专业的。
这还不简单,先用 tomcat 自还的 bat 启动,转到 windows 进程管理器查看进程当前运行的参数。windows 自带的任务管理器达不到这个目的,推荐你下载 windows 收购的 Process Explorer NT,在 M$ 网站上下载。看完了进程命令行参数,自己模拟一下。
一般来说,JVM 刚启动的时候会把一些命令行参数和环境变量转换成 System.getProperties() 里面的参数,因为我们是绕过了 Java 命令行程序,因此我们需要把这些东西添加进去后才能调用开始.