2011-11-11 45 views
1

即使從Java Robot定期發出編程式鼠標「擺動」,OS X Lion仍然會進入睡眠狀態(這是使機器不會進入睡眠狀態的標準方法並在其他地方記錄在stackoverflow中,並且它在OS X Lion之前爲我工作)。以編程方式(以Java)保持OS X不會入睡

任何人都可以建議一種替代方法,它不需要權限升級,讓機器從Java應用程序中喚醒嗎? ((回退解決方案顯然是改變節能偏好,以便機器不會睡覺,但我們希望比這更聰明,因爲要求機器保持清醒是例外而不是規則)) 。

回答

1

您是否需要防止顯示屏睡眠或系統睡眠?如果是後者,您可以通過磁盤活動阻止系統睡眠 - 例如讀取或寫入文件。

硬盤活動不會阻止顯示屏的睡眠,但它確實會阻止系統進入睡眠狀態。在 系統進入睡眠狀態前,如果兩種類型的睡眠都設置爲在相同長度的非活動狀態之後發生,則顯示器進入睡眠狀態並不罕見。 http://support.apple.com/kb/ht1776

This answer指向Objective-C代碼,可用於防止睡眠,使用UpdateSystemActivity呼叫。你可以在這個上創建一個簡單的JNI包裝器,你可以從你的Java代碼中調用本地方法?

似乎也可以使用applescript禁用並重新啓用睡眠。你能用Java代碼中的Runtime.exec()來調用這樣一個腳本嗎?

+0

顯示睡眠與我無關,我只對停止機器進入系統睡眠感興趣。從經驗中,我可以告訴你,閱讀和寫入文件*絕對*不會讓iMac無法入睡! – fommil

相關問題