为了账号安全,请及时绑定邮箱和手机立即绑定

获取操作系统级系统信息

获取操作系统级系统信息

斯蒂芬大帝 2019-06-18 13:48:44
获取操作系统级系统信息我目前正在构建一个Java应用程序,它可能最终在许多不同的平台上运行,但主要是Solaris、Linux和Windows的变体。是否有人能够成功地提取诸如当前使用的磁盘空间、CPU的使用和底层操作系统中使用的内存等信息?Java应用本身正在消耗什么呢?我更愿意在不使用JNI的情况下获取这些信息。
查看完整描述

3 回答

?
www说

TA贡献1775条经验 获得超8个赞

您可以从Runtime类获得一些有限的内存信息。这确实不是你想要的,但我想我会为了完整而提供它。下面是一个很小的例子。编辑:您还可以从java.io.File类获得磁盘使用信息。磁盘空间的使用需要Java1.6或更高版本。

public class Main {
  public static void main(String[] args) {
    /* Total number of processors or cores available to the JVM */
    System.out.println("Available processors (cores): " + 
        Runtime.getRuntime().availableProcessors());

    /* Total amount of free memory available to the JVM */
    System.out.println("Free memory (bytes): " + 
        Runtime.getRuntime().freeMemory());

    /* This will return Long.MAX_VALUE if there is no preset limit */
    long maxMemory = Runtime.getRuntime().maxMemory();
    /* Maximum amount of memory the JVM will attempt to use */
    System.out.println("Maximum memory (bytes): " + 
        (maxMemory == Long.MAX_VALUE ? "no limit" : maxMemory));

    /* Total memory currently available to the JVM */
    System.out.println("Total memory available to JVM (bytes): " + 
        Runtime.getRuntime().totalMemory());

    /* Get a list of all filesystem roots on this system */
    File[] roots = File.listRoots();

    /* For each filesystem root, print some info */
    for (File root : roots) {
      System.out.println("File system root: " + root.getAbsolutePath());
      System.out.println("Total space (bytes): " + root.getTotalSpace());
      System.out.println("Free space (bytes): " + root.getFreeSpace());
      System.out.println("Usable space (bytes): " + root.getUsableSpace());
    }
  }}


查看完整回答
反对 回复 2019-06-18
?
眼眸繁星

TA贡献1873条经验 获得超9个赞

我认为最好的方法是实现SIGARAPI..它适用于大多数主要操作系统(几乎所有现代操作系统),并且非常容易使用。开发人员在他们的论坛和邮件列表上非常有反应。我也很喜欢GPL 2 Apache许可..他们也用Java提供了大量的例子!

SIGAR=系统信息、收集和报告工具。


查看完整回答
反对 回复 2019-06-18
  • 3 回答
  • 0 关注
  • 401 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号