2011-10-03 41 views
0

我想在java中編寫一個函數,將關閉,強制關機,重新啓動並強制重新啓動計算機,它應該在Windows,Linux和Mac上工作。使用JNA或類似的關機和重新啓動計算機在Linux和Mac

Windows不是問題,但由於sudo權限,我無法運行命令在Linux上關閉。因此,我想使用JNA關閉計算機(我知道你可以使用JNA在Windows上執行此操作),但我無法在線找到任何有關Linux或Mac的示例。

誰能幫助我嗎?這將非常感謝!

即使它不是通過JNA,只要我能找到一些方法來實現這一點,它會幫助我很多。

回答

1

如果您只是簡單地使用Java覆蓋系統保護,那將是一個很大的安全漏洞!我很驚訝你可以在Windows上做到這一點。

無論如何,只有當您擁有對您的機器的管理訪問權限才能在具有關機/重啓權限的特定組中設置程序時才能完成此操作。否則,你不能這樣做。

我想你可能直接給這些權利給你的JVM,但如果其他Java程序試圖關機,這可能是危險的。

+0

是的,通過使用Runtime.exec()的關機命令可以使用Windows。 目前我正在爲Linux做的事情是,我使用具有管理員權限的帳戶回到自己,以關閉並重新啓動。那麼這是唯一的方法嗎? – Angeline

+0

這與給予JVM權限或將sudo/su用於無密碼帳戶一樣不安全。只要它有效;) – wormsparty

+0

你也可以嘗試編輯/ etc/sudoers文件,並讓自己有權在沒有任何密碼的情況下執行'/ sbin/shutdown'。 – wormsparty

相關問題