当Windows处于睡眠模式时,预定的Java应用程序是否会运行?

如果我启动一个Java应用程序,它会启动并执行一些工作,然后进入hibernate状态一小时,然后在一小时后唤醒,然后执行一些工作。

但是我的电脑运行的是Win7,经过15分钟的不活动,它会进入睡眠模式,所以我的问题是:从我启动Java应用程序开始的一个小时,如果我不触摸电脑,进入睡眠模式,我的Java应用程序仍然能够唤醒并完成它的工作,如果是的话,将Win7电脑唤醒与屏幕再次打开[因为在Win7睡眠模式下屏幕closures]?

正常的Thread.sleep()不会将计算机从睡眠模式中唤醒。

但是,使用Windows任务计划程序注册任务时,可以选择“唤醒计算机以运行此任务”。 当进入睡眠模式时,Windows会告诉主板下一次注册唤醒任务的时间。

如果Windows不是,它怎么可能运行? 主板支持的自动唤醒可能有一些技巧,但是当机器处于睡眠模式时,从操作系统和程序的角度来看,它可能会关闭。

编辑:注意其他答案,指出使用一些Windows API和工具(这可能与主板提供定时唤醒工作)的解决方法。

我知道WHS的客户端组件允许你的电脑唤醒自己执行客户端备份。 您实际上可以指定从睡眠中唤醒PC以执行由实际WHS控制的备份的选项。 他们如何完成这个任务不是通过Java,我相信他们有不同的挂钩到操作系统,因为在睡眠模式下,实际上仍然有电力供应。 下面是一篇文章 ,讨论在Java / C ++中检测转移到待机状态并阻止它,并可能以不同的方式来实现你正在尝试完成的任务。 此外,您可以使用WOL远程唤醒PC。

如果你的机器睡着了,那么一切都暂停了。 包括您可能想要运行的任何自定义应用程序。