如何在Java中获得UNIX正常运行时间?

时间:2011-11-21 08:32:32

标签: java unix

在Java中获得UNIX正常运行时间的最佳方法是什么?是否有我可以使用的标准Java库/函数,还是应该使用Runtime的exec或ProcessBuilder来执行'uptime'?感谢

3 个答案:

答案 0 :(得分:8)

您可以阅读/proc/uptime

new Scanner(new FileInputStream("/proc/uptime")).next();
//"1128046.07" on my machine and still counting

来自Wikipedia

  

显示系统自上次重新启动以来已运行多长时间:

$ cat /proc/uptime
  350735.47 234388.90
  

第一个数字是系统启动的总秒数。第二个数字是机器闲置的时间,以秒为单位。

答案 1 :(得分:3)

Runtime.getRuntime().exec('uptime');
你尝试过这个吗?在java中执行等同于system('uptime');的操作的唯一命令是runTime.exec()。这就是我能想到的全部......

答案 2 :(得分:3)

这可能完全取决于系统,但您可以使用System.nanotime();

System.out.println("/proc/uptime " + new Scanner(new FileInputStream("/proc/uptime")).next());
System.out.println("System.nanoTime " + System.nanoTime() / 1e9);

打印

/proc/uptime 265671.85
System.nanoTime 265671.854834206

警告:这不太适用于所有平台。