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>
文章评论