交代下背景:
java语言,idea开发,maven打包
jar包内包含了依赖了oshi(可以监控采集设备信息),在别的项目上执行jar包报错。
错误如下:我看了下缺失的dll,在jar包内是存在的
Caused by: java.lang.UnsatisfiedLinkError: JAR entry com/sun/jna/win32-x86-64/jnidispatch.dll not found in I:\IdeaProjects\RemoteJar\target\RemoteJar-1.0-SNAPSHOT.jar
at com.sun.jna.Native.loadNativeDispatchLibraryFromClasspath(Native.java:1033)
at com.sun.jna.Native.loadNativeDispatchLibrary(Native.java:989)
at com.sun.jna.Native.<clinit>(Native.java:195)
at com.sun.jna.Structure.setAlignType(Structure.java:291)
at com.sun.jna.Structure.<init>(Structure.java:208)
at com.sun.jna.Structure.<init>(Structure.java:204)
at com.sun.jna.Structure.<init>(Structure.java:191)
at com.sun.jna.Structure.<init>(Structure.java:183)
at com.sun.jna.platform.win32.WinNT$OSVERSIONINFOEX.<init>(WinNT.java:1973)
at com.sun.jna.platform.win32.VersionHelpers.IsWindowsVersionOrGreater(VersionHelpers.java:59)
at com.sun.jna.platform.win32.VersionHelpers.IsWindows7OrGreater(VersionHelpers.java:154)
at oshi.hardware.platform.windows.WindowsCentralProcessor.initProcessorCounts(WindowsCentralProcessor.java:154)
at oshi.hardware.common.AbstractCentralProcessor.<init>(AbstractCentralProcessor.java:74)
at oshi.hardware.platform.windows.WindowsCentralProcessor.<init>(WindowsCentralProcessor.java:66)
at oshi.hardware.platform.windows.WindowsHardwareAbstractionLayer.createProcessor(WindowsHardwareAbstractionLayer.java:61)
at oshi.util.Memoizer$1.get(Memoizer.java:87)
at oshi.hardware.common.AbstractHardwareAbstractionLayer.getProcessor(AbstractHardwareAbstractionLayer.java:68)
at ServerInfo.setCpuInfo(ServerInfo.java:87)
at ServerInfo.collectInfo(ServerInfo.java:34)
... 56 more
切换成32位的JVM试一下。