我想提出一个个人节目一定时间后或在某将关闭我的电脑时间/日期。但是,我正在运行多个操作系统,并希望用一个简单的Java程序来完成此操作。 有没有什么办法可以在没有任何外部库的情况下用Java发送一个与系统无关的机器关闭请求?我知道你可以在Windows中使用java.awt.Desktop.getDesktop().browse(new URI("shutdown /s"));
,但是,我想要的是系统独立性。
回答
@robjb给了我最好的解决方案。尽管我的口味有点过于僵化,但我会一直在起诉,直到遇到问题。
String shutdownCommand;
StringPP operatingSystem = new StringPP(System.getProperty("os.name"));
if (operatingSystem.containsIgnoreCase("linux") ||
operatingSystem.containsIgnoreCase("mac") ||
operatingSystem.containsIgnoreCase("unix"))
{
shutdownCommand = "sudo shutdown -h -t 30";
}
else if (operatingSystem.containsIgnoreCase("windows"))
{
shutdownCommand = "shutdown /s /d P:0:0 /t 30 /c \"Blue Husky Timer 2 is shutting down your system, as you requested. \n"
+ "You have 30 seconds to save and close programs\"";
}
else
{
throw new UnsupportedOperationException("Unsupported operating system.");
}
try
{
Runtime.getRuntime().exec(shutdownCommand);
}
catch (Throwable t)
{
Main.LOG.logThrowable(t);
}
System.exit(0);
在上述例子中,StringPP
是增强与方法String
的能力,如以上所使用#containsIgnoreCase
的自定义类。 Main.LOG
是我制作和使用的日志记录工具。
不,没有。
这超出了JVM或标准Java类库的范围。
快乐编码。
如果它解释了原因,我会对此进行投票或接受。就目前来看,它只是**听起来像一个短视的意见。对不起...... – Supuhstar 2011-12-24 01:22:19
@Supuhstar老实说不知道还有什么可说的:) JDK是一个通用库。我不知道任何具有system-shutdown命令的任何*语言的*任何*标准库,这是一个操作系统功能。这包括C,因为许多由操作系统提供的系统调用(不管是Linux内核还是Windows和WinAPI)都不会以任何方式通过stdlib公开。作为POSIX API的一部分,只有部分操作系统功能被公开:我找不到“关闭计算机”。 – 2011-12-25 00:14:44
所以......你是说“java.awt.Toolkit#shutdown()”太系统特定?为什么单个JVM不能处理实际的关闭命令,而Java字节码仍然是相同的? – Supuhstar 2012-01-01 08:12:01
- 1. 建立两个独立的机器之间的SSH连接使用3系统
- 2. C中的独立随机生成器
- 3. HOWTO区分系统关机
- 4. C++独立于操作系统(windows&linux)的开源随机数生成器库?
- 5. 机器独立与机器中性有什么区别?
- 6. 是迭代器:: difference_types系统独立
- 7. 从SharePoint独立删除SQL依赖关系克隆虚拟机
- 8. MessageBox操作系统。独立
- 9. 静态库机器是独立的吗?
- 10. 谷歌机器人系统
- 11. 机器学习系统
- 12. 以使用主机操作系统的Java应用程序(Java的机器人)
- 13. 机器相对于机器独立语言
- 14. 使three20集成独立于机器?
- 15. MSDTC从独立的机器到域计算机
- 16. 两台独立的Vagrant机器,Windows主机,PuTTY--如何?
- 17. 压缩机项目独立?
- 18. 独立模特关系
- 19. Maven独立依赖关系?
- 20. 独立于系统时间的Android中的时间跟踪器
- 21. 机器人框架硒独立只有Java安装
- 22. 检测系统用户关机
- 23. 嵌入式文件系统和关机
- 24. 使用Powershell检测系统关机
- 25. Python tkinter捕获Windows系统关机
- 26. 响应系统关机进程
- 27. AutoIt - 检测系统关机/重启
- 28. javaagent,系统托盘和关机
- 29. Java平台是独立的还是与操作系统无关的?
- 30. 系统独立开启afile的方法
看看:http://stackoverflow.com/questions/25637/shutting-down-a-computer-using-java – Rob 2011-12-23 05:23:05
当采取这种方法(这将是你唯一的选择),我建议直接使用' Runtime.exec()'而不是在桌面上浏览一些看起来像命令行的URL。 – 2011-12-23 05:24:08
根据结果使用“operatingSystem = System.getProperty(”os.name“)”,然后是“Runtime.exec()”的帖子绝对是他最好的选择。 – paulsm4 2011-12-23 05:26:45