JNA UnsatisfiedLinkError, but jna.library.path is set

Viewed 30120

I'm using the following code to load a dll in JNA (irrelevant code is left out):

    public class JNAMain {
       public interface PointShapeBuffer extends Library { ... }

       public static void main(String[] args){
          System.setProperty("jna.library.path", "c:\\jnadll");
          System.setProperty("java.library.path", "c:\\jnadll");

          PointShapeBuffer jna = (PointShapeBuffer) Native.loadLibrary("FileGDBAPI", PointShapeBuffer.class);
       }
    }

And I get the following error:

Exception in thread "main" java.lang.UnsatisfiedLinkError: Unable to load library 'FileGDBAPI': The specified module could not be found.

I've also tried setting the VM args. Any suggestions would be great.

Edit: For reference, I am using a publicly available library found here (registration is required).

6 Answers

Like it was already mentioned in some comments: checks your Dependencies of your DLL/Library. Best Tool for this is Dependency Walker (http://www.dependencywalker.com/). Only if all your Dependencies are fulfilled, jna finds your DLL.... took me quite long to figure this out

Related