一、Java系统监控实现
1. hutool的系统监控工具类:SystemUtil
- 官网:https://hutool.cn/docs/ (详情可以去官网看)
-
- Java Virtual Machine Specification信息
SystemUtil.getJvmSpecInfo();
-
- Java Virtual Machine Implementation信息
SystemUtil.getJvmInfo();
-
- Java Specification信息
SystemUtil.getJavaSpecInfo();
-
- Java Implementation信息
SystemUtil.getJavaInfo();
-
- Java运行时信息
SystemUtil.getJavaRuntimeInfo();
-
- 系统信息
SystemUtil.getOsInfo();
- 7.用户信息
SystemUtil.getUserInfo();
-
- 当前主机网络地址信息
SystemUtil.getHostInfo();
-
- 运行时信息,包括内存总大小、已用大小、可用大小等
SystemUtil.getRuntimeInfo();
2. Oshi 封装工具类
- 使用过程:引入Oshi 库
<!--获取cpu信息工具包,需要三个包配合使用,并且依赖引入要放在最开始,否则会报错-->
<dependency>
<groupId>com.github.oshi</groupId>
<artifactId>oshi-core</artifactId>
<version>5.6.1</version>
</dependency>
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna</artifactId>
<version>5.5.0</version>
</dependency>
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna-platform</artifactId>
<version>5.5.0</version>
</dependency>
- 然后可以调用相关API获取相关信息。
例如我们像获取CPU信息:
CpuInfo cpuInfo = OshiUtil.getCpuInfo();
二、可能出现的问题
1. NoClassDefFoundError: com/sun/jna/platform/win32/VersionHelpers问题
- 提示找不到jna
- 解决方法就是添加jna包,文前边已经给出。
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna</artifactId>
<version>5.5.0</version>
</dependency>
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna-platform</artifactId>
<version>5.5.0</version>
</dependency>
2. java.lang.AbstractMethodError: com.sun.jna.Structure.getFieldOrder()Ljava/util/List
- 解决方法,把依赖放到最上边,最先引入,则不报错。