我用java写了一个定时关机程序,但是每天都得设置定时关机时间,感觉不是很好。怎样用java实现每天定时关机。
------解决方案--------------------------------------------------------
把时间设置,存到配置文件,Java程序去读取不就好了?
------解决方案--------------------------------------------------------
public class shutdownSystem extends Thread{
//设置关机时与分
private static shutdownH=10;
private static shutdownM=10;
public void run(){
// 获取当关时与分
int thisH=Calendar .HOUR_OF_DAY;
int thisM=Calendar.MINUTE;
if(shutdownH==thisH && shutdownM==thisM){
try {
//关机
java.lang.Runtime.getRuntime().exec( "shutdown -s ");
} catch (java.io.IOException e) {
e.printStackTrace();
}finally{
try{
//间隔一分钟检查一次,确保能检查到关机时间
this.sleep(60000);
}chatch(Exception ex){}
}
}
}
}
------解决方案--------------------------------------------------------
调用一个bat就行,bat进行关机
------解决方案--------------------------------------------------------
回复于:2012-04-14 19:24:32如果是要用Windows实现的话,就是:任务栏->开始->程序->附件->系统工具->任务计划程序
然后自己配置吧,命令就是:
shutdown /s /t 0 /f
------解决方案--------------------------------------------------------
用Runtime的exec调用schtasks创建一个windows任务计划就可以了
for example
- Java code
//创建任务计划(每天晚上22:00关闭计算机)String cmd = "schtasks /create /tn ShutdownWin /st 22:00 /sc daily /tr \"shutdown /s /t 0 /f\"";Runtime.getRuntime().exec(cmd);
------解决方案--------------------------------------------------------
类似上面说的,调用runtime,执行windows的at命令来定时,而at命令再调用shutdown来关机
at 10:25 shutdown -s -f -t 0
不过这种东西貌似不必通过java来当二传手。另外,可能还有权限问题,at和shutdown,在高版本的win里面比如win7,都需要授权才能操作。