我的程序依赖以下代码来获取可用的系统内存:
import oshi.SystemInfo;
import oshi.hardware.HardwareAbstractionLayer;
SystemInfo si = new SystemInfo();
HardwareAbstractionLayer hal = si.getHardware();
// Next line throws exception: NoClassDefFoundError -> com/sun/jna/platform/win32/Psapi
long availableBytes = hal.getMemory().getAvailable();
double availableMegabytes = ((double) availableBytes) / 1048576;
double availableGigabytes = ((double) availableMegabytes)/1024;
更新:oshi-core在从每个项目中删除每个事件之后Workspace(以消除暂时冲突依赖的可能性 - 只剩4.2.1下)。现在我得到的错误是->java.lang.NoClassDefFoundError: com/sun/jna/platform/win32/VersionHelpers
在pom.xml我添加了oshi-core依赖项 - 我已经尝试了从版本3.4.0到最新版本的几乎每个版本4.2.1,它们都导致相同的错误。
我意识到oshi-core依赖于jnaand jna-platform。在Dependency Hierarchy我看到两者都已解析(编译)为 version 5.5.0。
是什么导致了这个错误,如何解决?
谢谢!
附言
我已经看到其他一些有类似错误的线程,但找不到任何有这个确切问题的线程(缺少com/sun/jna/platform/win32/Psapi)