启动-确定使用Java打开计算机的时间
我有一个在Windows startup上运行的Java JAR程序。它需要注册计算机被打开的时间,因此自然地,它只需要获得调用main
方法的时间。很好
但是,我们安装该程序的一些计算机非常(非常)慢。开机几分钟后,程序可能会启动,这并不奇怪
10-15秒的误差是可以接受的(我们最新的计算机)。但最老的两到三分钟就不行了
有没有合理的方法来确定电脑的开机时间?使用Java
我确实意识到,对于这种工作,Java是一个糟糕的选择。众所周知,Java启动速度并不特别快。无论如何,我会问这个问题,因为程序已经用java完成了,但是如果没有解决方案,我将在C++版本上工作。p>
窗户
# 1 楼答案
写得简短一点怎么样。bat文件,只有一个功能——启动后,它会将实际时间写入文件
当你的Java程序被加载时,它只是首先尝试读取文件并找出计算机启动的时间
也许更好的主意是,从现在开始你的计划。蝙蝠档案。首先获取实际时间并将其保存到变量中,然后以该变量的值作为参数启动程序。当程序启动时,它将首先在main方法中接收启动时间
# 2 楼答案
您可以尝试从Java内部(使用
Runtime.getRuntime().exec(...)
)启动一个命令,该命令将为您提供确切的机器启动时间(systeminfo
)或正常运行时间(有一个Microsoft实用程序uptime.exe)# 3 楼答案
有several options可以在Windows上找到这一点:
(正如@Robert所指出的,这只适用于英文Windows安装)
或者
或者
只需使用
Runtime.getRuntime().exec("command");
调用命令# 4 楼答案
这不是一个与java相关的问题
这是一个与操作系统相关的问题
如果你的操作系统有一个函数可以提供这些信息,你可以调用这个函数
从java调用os函数的代码是
在linux中,获取上次引导信息的命令行命令如下:
正如我所说,这取决于不同的操作系统
对于windows环境,可以使用以下代码: