OpenHFT / Chronicle-Map

Replicate your Key Value Store across your network, with consistency, persistance and performance.
http://chronicle.software/products/chronicle-map/
Apache License 2.0
2.77k stars 469 forks source link

UnsatisfiedLinkError on Windows 7 and JDK 11.0.1 #168

Closed ahornace closed 5 years ago

ahornace commented 5 years ago

When trying to create Chronicle Map I get the following error:

java.lang.UnsatisfiedLinkError: C:\Users\ahornace\AppData\Local\Temp\jna--1648496481\jna6682011982801986999.dll: Can't find dependent libraries

    at java.base/java.lang.ClassLoader$NativeLibrary.load0(Native Method)
    at java.base/java.lang.ClassLoader$NativeLibrary.load(ClassLoader.java:2430)
    at java.base/java.lang.ClassLoader$NativeLibrary.loadLibrary(ClassLoader.java:2487)
    at java.base/java.lang.ClassLoader.loadLibrary0(ClassLoader.java:2684)
    at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2617)
    at java.base/java.lang.Runtime.load0(Runtime.java:767)
    at java.base/java.lang.System.load(System.java:1831)
    at com.sun.jna.Native.loadNativeDispatchLibraryFromClasspath(Native.java:851)
    at com.sun.jna.Native.loadNativeDispatchLibrary(Native.java:826)
    at com.sun.jna.Native.<clinit>(Native.java:140)
    at net.openhft.chronicle.hash.impl.util.jna.WindowsMsync.<clinit>(WindowsMsync.java:34)
    at net.openhft.chronicle.hash.impl.VanillaChronicleHash.msync(VanillaChronicleHash.java:843)
    at net.openhft.chronicle.hash.impl.VanillaChronicleHash.msync(VanillaChronicleHash.java:831)
    at net.openhft.chronicle.map.ChronicleMapBuilder.commitChronicleMapReady(ChronicleMapBuilder.java:413)
    at net.openhft.chronicle.map.ChronicleMapBuilder.createWithNewFile(ChronicleMapBuilder.java:1749)
    at net.openhft.chronicle.map.ChronicleMapBuilder.createWithFile(ChronicleMapBuilder.java:1652)
    at net.openhft.chronicle.map.ChronicleMapBuilder.recoverPersistedTo(ChronicleMapBuilder.java:1589)
    at net.openhft.chronicle.map.ChronicleMapBuilder.createOrRecoverPersistedTo(ChronicleMapBuilder.java:1572)
    at net.openhft.chronicle.map.ChronicleMapBuilder.createOrRecoverPersistedTo(ChronicleMapBuilder.java:1563)
    at net.openhft.chronicle.map.ChronicleMapBuilder.createOrRecoverPersistedTo(ChronicleMapBuilder.java:1557)

Chronicle Map version: 3.17.0

Usage:

ChronicleMap<BytesRef, Integer> map = ChronicleMap.of(BytesRef.class, Integer.class)
                .name(name)
                .averageKeySize(averageKeySize)
                .keyReaderAndDataAccess(BytesRefSizedReader.INSTANCE, new BytesRefDataAccess())
                .entries(entries)
                .createOrRecoverPersistedTo(file);

Works fine with JDK8.

ahornace commented 5 years ago

Using -Djna.nosys=true seems to resolve the issue.

hft-team-city commented 5 years ago

Released in Chronicle-Map-3.17.1, BOM-2.17.196

hft-team-city commented 5 years ago

Released in Chronicle-Map-3.17.1, BOM-2.17.225

hft-team-city commented 5 years ago

Released in Chronicle-Map-3.17.1, BOM-2.17.241