你需要防止显示器睡眠或系统睡眠吗?如果是后者,您可以通过磁盘活动防止系统休眠 - 例如读取或写入文件。
硬盘活动不会阻止显示器睡眠,但它确实会阻止 系统睡眠。显示器在睡前播放的情况并不少见 如果两种类型的睡眠都设置为在之后发生,则系统进入睡眠状态 相同长度的不活动。 http://support.apple.com/kb/ht1776
这个答案 指向可用于防止睡眠的Objective-C代码,使用 UpdateSystemActivity 呼叫。你可以在这个上创建一个简单的JNI包装器,你可以从Java代码中调用它作为本机方法吗?
UpdateSystemActivity
似乎也可以使用applescript禁用和重新启用睡眠。你可以使用调用这样的脚本吗? 的Runtime.exec() 从您的Java代码?
事实证明,使用纯Java hack不再可能这样做,并且必须求助于实现JNI I / O侦听器,其代码将包含类似的内容
http://developer.apple.com/library/mac/#qa/qa1340/_index.html
如果您可以容忍调用命令行工具,则可以选择另一种方法 pmset noidle 在守护程序线程中。
pmset noidle