我的程序依赖以下代码来获取可用的系统内存:
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
依赖于jna
and jna-platform
。在Dependency Hierarchy
我看到两者都已解析(编译)为 version 5.5.0
。
是什么导致了这个错误,如何解决?
谢谢!
附言
我已经看到其他一些有类似错误的线程,但找不到任何有这个确切问题的线程(缺少com/sun/jna/platform/win32/Psapi
)