使用Java确定计算机打开的时间

时间:2015-07-28 14:35:38

标签: java startup

我有一个在Windows启动时运行的Java JAR程序。它需要记录计算机打开的时间,因此它自然只是调用main方法的时间。工作正常。

但是,我们安装该程序的一些计算机非常(非常)慢。毫不奇怪,在打开电脑几分钟后,程序的启动可能会发生。

10-15秒的不准确度是可以接受的(我们最新的计算机)。但最古老的那两三分钟并不是这样。

是否有合理的方法来确定计算机开机的时间?使用Java?

我确实意识到,对于这种工作,Java是一个糟糕的选择。众所周知,Java启动并不是特别快。无论如何,我会问这个,因为程序已经完成了Java - 但是如果没有解决方案,我将使用C ++版本。

窗。

4 个答案:

答案 0 :(得分:2)

several options在Windows上找到这个:

systeminfo | find /i "Boot Time"

(如@Robert所述,这仅适用于英语Windows安装)

wmic os get lastbootuptime

net statistics workstation

只需使用Runtime.getRuntime().exec("command");来调用命令。

答案 1 :(得分:1)

如何编写简短的* .bat文件,只有一个功能 - 启动后将实际时间写入文件。

加载Java程序时,它首先尝试读取文件并找出计算机启动的时间。

也许更好的主意 - 通过.bat文件启动你的程序。首先获取实际时间并将其保存到变量,然后使用此变量的值作为参数启动程序。当程序打开时,它将首先在main方法中接收启动时间。

答案 2 :(得分:0)

您可以尝试从Java(使用Runtime.getRuntime().exec(...))启动一个命令,该命令将为您提供确切的机器启动时间(systeminfo)或正常运行时间(有一个Microsoft实用程序uptime.exe)。

答案 3 :(得分:-2)

这不是与java相关的问题。

这是一个与操作系统有关的问题。

如果您的操作系统具有为您提供此信息的功能,则可以调用该功能

从java调用os函数的代码是

Runtime.getRuntime().exec("command");

在linux中,获取上次启动信息的命令行命令如下:

last reboot | head -1

正如我所说,它取决于操作系统到操作系统。

对于Windows环境,您可以使用以下代码:

systeminfo | findstr /C:"System Boot Time"