sigar.jar架包在采集cpu信息的时候,如果java的运行环境是win10+jdk11的话,java会崩溃
部分错误信息如下
EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00000000100147c4, pid=3844, tid=1044
Stack: [0x0000004aee000000,0x0000004aee100000], sp=0x0000004aee0ff1d0, free space=1020k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C [sigar-amd64-winnt.dll+0x147c4]
Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j org.hyperic.sigar.Sigar.getCpuListNative()[Lorg/hyperic/sigar/Cpu;+0
j org.hyperic.sigar.Sigar.getCpuList()[Lorg/hyperic/sigar/Cpu;+1
j org.hyperic.sigar.Sigar.getCpuPercList()[Lorg/hyperic/sigar/CpuPerc;+8
可以看到,是 sigar-amd64-winnt.dll导致java虚拟机崩溃掉
看了一下sigar的github,发现有人也遇到这个问题
这个问题,有个人说他解决了
跳到这个人的主页,找到他的项目https://github.com/cnstar9988/sigar
项目下有一个sigar-amd64-winnt.dll,更新这个dll到自己的代码中,即可解决java崩溃的问题
最后附上百度云的下载链接
链接: https://pan.baidu.com/s/1CWQ8gS-evg1O5Vv2qnstmQ 提取码: csyp