从 Java 睡眠 Windows
java中有没有可以在windows上使用的命令来让计算机进入睡眠状态?
Is there command to use on windows from java to make the computer sleep?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
java中有没有可以在windows上使用的命令来让计算机进入睡眠状态?
Is there command to use on windows from java to make the computer sleep?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(6)
如果您的 java 应用程序有足够的权限,您可以通过执行 shell 命令来完成此操作。该命令是...
该命令和其他命令显示在 此处。
You can do it by executing a shell command, if you java app has enough rights to do so. The command is...
That and other commands are shown here.
我目前使用 https://github.com/twall/jna 解决了这个问题。有关来自 http://www.pinvoke.net/default.aspx/powrprof 的调用的信息。 SetSuspendState
调用它而不是使用
WindowsSuspend.SetSuspendState(false, false, false)
。I currently solved this using https://github.com/twall/jna. Information about the call from http://www.pinvoke.net/default.aspx/powrprof.SetSuspendState
Call it than with
WindowsSuspend.SetSuspendState(false, false, false)
.任何建议 rundll32 应该被枪杀的人,很少有函数被设计为由 rundll32 调用,而 SetSuspendState 不是其中之一。您将得到随机行为(休眠与待机、强制与非强制等)请参阅 此博客条目了解更多详细信息。
Anyone suggesting rundll32 should be shot, very few functions are designed to be called by rundll32 and SetSuspendState is not one of them. You will get random behavior (Hibernate vs Standby and Forced vs not forced etc) See this blog entry for more details.
不可以。您需要通过 Runtime.exec() 执行单独的二进制文件。
这篇文章建议
但我还没有尝试过。
No. You'd need to execute a separate binary via
Runtime.exec()
.This article suggests
but I've not tried it.
您可能需要在此处查看 OnNow/ACPI 支持。
还有一篇旧的 SO 帖子讨论了它 这里。
可能与你想要的相反。不过可能会给你一些线索。
You may want to look at the OnNow/ACPI Support here.
There is also an old SO post that talks about it here.
Probably the reverse of what you want. Might give you some clues though.
方法有点复杂,但您可以使用 ProcessBuilder 来制作 shell 脚本(
.sh
或.bat
)并执行它。A bit more complicated method but you could use
ProcessBuilder
to make a shell script (.sh
or.bat
) and execute that.