Java Sigar获取本机情况,包括磁盘、CPU、内存使用或网络配置,及环境库目录地址的获取

本文介绍了如何使用Java的Sigar库获取Windows系统的磁盘、CPU和内存信息,以及如何解决运行前需将dll库放入环境库目录的问题。博主分享了main方法的代码以及获取系统环境库目录的方法,提到了可能遇到的异常处理,并提供了Maven项目的依赖配置。
摘要由CSDN通过智能技术生成

今天因为老师跟的项目要获取当前系统或者说当前硬件机器的磁盘、CPU和内存的情况,使用到了这个Sigar,虽然还不了解具体情况是什么样子,但是这里先记录一下被安排解决的一个小问题,留待以后查阅。

博主的电脑是Windows 10x64的,所以用到的是Sigar那个压缩包里面的sigar-amd64-winnt.dll、sigar-x86-winnt.dll和sigar-x86-winnt.lib三个文件(可能里面有不是匹配64位机的,但是我一股脑全拉进去了,这三个都是针对windows系统的就对了)。博主要解决的问题是,运行main程序方法去测试获取磁盘、CPU、内存和网络情况之前,需要将这三个文件放到相对应的环境库目录下,程序才能正常运行。感兴趣的同学可以自己试,下面先把获取方法代码贴出来(Sigar压缩包官网有,可以自己下)。

这是执行的main方法:

public static void main(String[] args) {
        try {
            // System信息,从jvm获取
            property();
            System.out.println("----------------------------------");
            // cpu信息
            cpu();
            System.out.println("----------------------------------");
            // 内存信息
            memory();
            System.out.println("----------------------------------");
            // 操作系统信息
            os();
            System.out.println("----------------------------------");
            // 用户信息
            who();
            System.out.println("----------------------------------");
            // 文件系统信息
            file();
            System.out.println("----------------------------------");
            // 网络信息
            net();
            System.out.println("----------------------------------");
            // 以太网信息
            ethernet();
            System.out.println("----------------------------------");
        } catch (Exception e1) {
            e1.printStackTrace();
        }
    }

下面是对应的每个方法的代码块,其实都是网上拉下来的,这里为了完整性,一并给出。

private static void property() throws UnknownHostException {
        Runtime r = Runtime.getRuntime();
        Properties props = System.getProperties();
        InetAddress addr;
        addr = InetAddress.getLocalHost();
        String ip = addr.getHostAddress();
        Map<String, String> map = System.getenv();
        String userName = map.get("USERNAME");// 获取用户名
        String computerName = map.get("COMPUTERNAME");// 获取计算机名
        String userDomain = map.get("USERDOMAIN");// 获取计算机域名
        System.out.println("用户名:  " + userName);
        System.out.println("计算机名:  " + computerName);
        System.out.println("计算机域名:  " + userDomain);
        System.out.println("本地ip地址:  " + ip);
        System.out.println("本地主机名:  " + addr.getHostName());
        System.out.println("JVM可以使用的总内存:  " + r.totalMemory());
        System.out.println("JVM可以使用的剩余内存:  " + r.freeMemory());
        System.out.println("JVM可以使用的处理器个数:  " + r.availableProcessors());
        System.out.println("Java的运行环境版本:  " + props.getProperty("java.version"));
        System.out.println("Java的运行环境供应商:  " + props.getProperty("java.vendor"));
        System.out.println("Java供应商的URL:  " + props.getProperty("java.vendor.url"));
        System.out.println("Java的安装路径:  " + props.getProperty("java.home"));
        System.out.println("Java的虚拟机规范版本:  " + props.getProperty("java.vm.specification
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值