最近在SpringBoot项目集成OHC,集成版本,springboot版本是2.1.1.RELEASE
<dependency>
<groupId>org.caffinitas.ohc</groupId>
<artifactId>ohc-core</artifactId>
<version>0.7.0</version>
</dependency>
总是报下面的错误
Exception in thread "main" java.lang.UnsatisfiedLinkError: /private/var/folders/nr/cc576bd55ynbpyqz72h7jwsr0000gn/T/jna-3850/jna538484906765449851.tmp: dlopen(/private/var/folders/nr/cc576bd55ynbpyqz72h7jwsr0000gn/T/jna-3850/jna538484906765449851.tmp, 1): no suitable image found. Did find: /private/var/folders/nr/cc576bd55ynbpyqz72h7jwsr0000gn/T/jna-3850/jna538484906765449851.tmp: no matching architecture in universal wrapper /private/var/folders/nr/cc576bd55ynbpyqz72h7jwsr0000gn/T/jna-3850/jna538484906765449851.tmp: no matching architecture in universal wrapper at java.lang.ClassLoader$NativeLibrary.load(Native Method) at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1950) at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1832) at java.lang.Runtime.load0(Runtime.java:811) at java.lang.System.load(System.java:1088) at com.sun.jna.Native.loadNativeDispatchLibraryFromClasspath(Native.java:947) at com.sun.jna.Native.loadNativeDispatchLibrary(Native.java:922) at com.sun.jna.Native.<clinit>(Native.java:190) at org.caffinitas.ohc.alloc.JNANativeAllocator.allocate(JNANativeAllocator.java:26) at org.caffinitas.ohc.linked.Uns.allocate(Uns.java:331) at org.caffinitas.ohc.linked.OffHeapLinkedMap$Table.create(OffHeapLinkedMap.java:527) at org.caffinitas.ohc.linked.OffHeapLinkedMap.<init>(OffHeapLinkedMap.java:80) at org.caffinitas.ohc.linked.OffHeapLinkedLRUMap.<init>(OffHeapLinkedLRUMap.java:30) at org.caffinitas.ohc.linked.OHCacheLinkedImpl.makeMap(OHCacheLinkedImpl.java:150) at org.caffinitas.ohc.linked.OHCacheLinkedImpl.<init>(OHCacheLinkedImpl.java:108) at org.caffinitas.ohc.OHCacheBuilder.build(OHCacheBuilder.java:297) at org.example.OffHeapCacheExample.main(OffHeapCacheExample.java:14)
升级springboot到2.6.2在win电脑或者其他电脑上可以,但是我本地电脑还是不行,mac pro m1,经过几个小时排查,原来是因为jna的版本太低引起的。升级jna到5.10.0版本解决问题
<!--堆外内存ohc-->
<dependency>
<groupId>org.caffinitas.ohc</groupId>
<artifactId>ohc-core</artifactId>
<version>0.7.4</version>
<exclusions>
<exclusion>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna</artifactId>
<version>5.10.0</version>
</dependency>