springboot+sigar读取系统信息

下载依赖包:

     

//sigar
    compile group: 'org.fusesource', name: 'sigar', version: '1.6.4'

文件下载地址:

链接: https://pan.baidu.com/s/137_D7OSC8oXo4gseHwEoUw

提取码: ajn7

相关文件在:hyperic-sigar-1.6.4\sigar-bin\lib目录下。

windows环境:

    在jdk目录的bin下面添加:sigar-amd64-winnt.dll,sigar-x86-winnt.dll文件

   文件下载目录

linux环境:

  首先可以自己在linux环境下写一个测试代码,获取java.library.path的相关信息。代码如下

 

public class Hello{
        public static void main(String[] args){
                System.out.print(System.getProperty("java.library.path"));
        }
}
输出结果如下:/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
编译运行输出结果中,找到第二个文件目录:如/usr/lib64,在此文件夹下面添加:libsigar-amd64-linux.so(针对64位的操作系统),或者libsigar-x86-linux.so(针对32位的操作系统)文件.如果访问权限不够,还需要sudo chmod 744修改libsigar-amd64-linux.so文件权限。

测试代码:

  


import java.lang.management.ManagementFactory;
import com.sun.management.OperatingSystemMXBean;
import org.hyperic.sigar.*;

import java.util.Properties;




/**
 * @Author: huangjie
 * @Description :
 * @Date: Created in 11:22 2018/9/8
 * @Modified By:*/


public class Test {
    public static void main(String[] args) throws SigarException {
        Properties props = System.getProperties();
        Sigar sigar = new Sigar();
        SysInfo sysInfo = new SysInfo();
        CpuPerc cpuCerc;
        Mem mem;
        OperatingSystem OS ;
        OS = OperatingSystem.getInstance();
        cpuCerc = sigar.getCpuPerc();
        mem = sigar.getMem();
        System.out.println(System.getProperty("java.library.path"));
        System.out.println(props.getProperty("os.name")+" "+OS.getDescription());
        System.out.println("<br>总使用率: "
                + String.format("%.2f ", cpuCerc.getCombined() * 100)
                + "%" + "<br>用户使用率(user): "
                + String.format("%.2f ", cpuCerc.getUser() * 100) + "%"
                + "<br>系统使用率(sys): "
                + String.format("%.2f ", cpuCerc.getSys() * 100) + "%"
                + "<br>当前空闲率(idle): "
                + String.format("%.2f ", cpuCerc.getIdle() * 100) + "%");
        System.out.println("<br>内存总量:" + mem.getTotal() / 1024 / 1024
                + "M" + "<br>已使用内存:" + mem.getUsed() / 1024 / 1024
                + "M" + "<br>剩余内存:" + mem.getFree() / 1024 / 1024 + "M");
        System.out.println(getMemery());
    }
    public static String getMemery() {
    OperatingSystemMXBean osmxb = (OperatingSystemMXBean) ManagementFactory
       .getOperatingSystemMXBean();
       // 总的物理内存+虚拟内存
       long totalvirtualMemory = osmxb.getTotalSwapSpaceSize();
       // 剩余的物理内存
       long freePhysicalMemorySize = osmxb.getFreePhysicalMemorySize();
       Double compare = (Double) (1 - freePhysicalMemorySize * 1.0
       / totalvirtualMemory) * 100;
       String str = "内存已使用:" + compare.intValue() + "%";
       return str;
    }
}

输出结果如图所示:

 上述操作可防止:java.lang.UnsatisfiedLinkError: org.hyperic.sigar.SysInfo.gather(Lorg/hyperic/sigar/Sigar;)V异常的发生。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot是一种用于构建独立的、可扩展的Java应用程序的开发框架。而SIGAR是一个Java库,用于获取系统信息,如CPU使用率、内存使用率、磁盘空间等。集成SIGAR可以让我们在Spring Boot应用程序中获取系统的详细信息。 要在Spring Boot中集成SIGAR,我们首先需要将SIGAR库添加到项目的依赖中。可以通过在pom.xml文件中添加如下依赖来实现: ```xml <dependency> <groupId>org.fusesource</groupId> <artifactId>sigar</artifactId> <version>1.6.4</version> <scope>runtime</scope> </dependency> ``` 添加依赖后,我们可以使用SIGAR库提供的API来获取系统信息。例如,我们可以编写一个类来获取CPU使用率的示例: ```java import org.hyperic.sigar.CpuPerc; import org.hyperic.sigar.Sigar; import org.springframework.stereotype.Component; @Component public class SystemInfo { private Sigar sigar; public SystemInfo() { sigar = new Sigar(); } public double getCpuUsage() { try { CpuPerc cpuPerc = sigar.getCpuPerc(); return cpuPerc.getCombined(); } catch (Exception e) { e.printStackTrace(); return 0.0; } } } ``` 在这个示例中,我们使用了Sigar类和CpuPerc类来获取CPU使用率。通过调用getCpuPerc方法,我们可以得到一个CpuPerc对象,然后通过调用getCombined方法获取CPU的使用率。 在这个类上添加@Component注解可以让Spring Boot自动扫描并将其作为一个Bean进行管理。我们可以在其他地方注入SystemInfo类,并调用getCpuUsage方法来获取CPU使用率。 除了获取CPU使用率,SIGAR库还提供了很多其他的功能,如获取内存使用率、磁盘空间等。使用SIGAR库可以让我们更方便地在Spring Boot应用程序中获取系统信息,帮助我们监控和管理应用程序的性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值