有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我有一个在Windows startup上运行的Java JAR程序。它需要注册计算机被打开的时间,因此自然地,它只需要获得调用main方法的时间。很好

但是,我们安装该程序的一些计算机非常(非常)慢。开机几分钟后,程序可能会启动,这并不奇怪

10-15秒的误差是可以接受的(我们最新的计算机)。但最老的两到三分钟就不行了

有没有合理的方法来确定电脑的开机时间?使用Java

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

窗户


共 (4) 个答案

  1. # 1 楼答案

    写得简短一点怎么样。bat文件,只有一个功能——启动后,它会将实际时间写入文件

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


    也许更好的主意是,从现在开始你的计划。蝙蝠档案。首先获取实际时间并将其保存到变量中,然后以该变量的值作为参数启动程序。当程序启动时,它将首先在main方法中接收启动时间

  2. # 2 楼答案

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

  3. # 3 楼答案

    several options可以在Windows上找到这一点:

    systeminfo | find /i "Boot Time"
    

    (正如@Robert所指出的,这只适用于英文Windows安装)

    或者

    wmic os get lastbootuptime
    

    或者

    net statistics workstation
    

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

  4. # 4 楼答案

    这不是一个与java相关的问题

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

    如果你的操作系统有一个函数可以提供这些信息,你可以调用这个函数

    从java调用os函数的代码是

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

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

    last reboot | head -1
    

    正如我所说,这取决于不同的操作系统

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

    systeminfo | findstr /C:"System Boot Time"