Springboot 使用oshi 监控,报错: NoClassDefFoundError: com/sun/jna/platform/win32/VersionHelpers

Spring boot 2.1.4.RELEASE 集成 oshi 监控控件时,报下面的错误。

oshi NoClassDefFoundError: com/sun/jna/platform/win32/VersionHelpers

在oshi issue里查找,发现当在win上跑的时候,不仅需要集成oshi,同时也需要指定jna;

但是按照说明添加最新版本的jna、jna-platform 后依然报错。

然后查看 External Libraries 里引用的外部库,发现有两个版本的 jna,也就是说还有其他的库依赖了jna库。

排查后发现 springboot 自身也有对应的jna、jna-platform版本。 

由于 springboot 2.1.4上依赖的 jna 版本是4.5.6,而win10上最低要求5.5.0版本,所以需要覆盖springboot的 jna 版本。

完整pom配置如下:

<!-- 在根目录下的pom.xml 文件里填写最新的版本号,用来覆盖springboot自带的版本 -->
<oshi.version>6.1.6</oshi.version>
<jna.version>5.11.0</jna.version>      

<!-- 系统信息获取,cpu,内存,硬盘等, jna, jna-platform 需要指定版本 -->
<dependency>
    <groupId>com.github.oshi</groupId>
    <artifactId>oshi-core</artifactId>
    <version>${oshi.version}</version>
</dependency>
<dependency>
    <groupId>net.java.dev.jna</groupId>
    <artifactId>jna</artifactId>
    <version>${jna.version}</version>
</dependency>
<dependency>
    <groupId>net.java.dev.jna</groupId>
    <artifactId>jna-platform</artifactId>
    <version>${jna.version}</version>
</dependency>

 

 

 

评论列表: