Trying to use DLL from Java (JNA). Unable to load library exception

Karloss picture Karloss · Jan 11, 2013 · Viewed 55.9k times · Source

I have NetBeans project from tutorial which causes exception:

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

Tried to put simpleDLL.dll in project libraries, copied file in system32 folder with no success.

Answer

BackSlash picture BackSlash · Jan 12, 2013

I had exactly the same problem with loading a DLL, I solved it in this way:

  • As Christian Kuetbach said, check if the simpleDLL you are using is compatible with your processor's architecture, a 32-bit DLL won't work on a 64-bit machine, and also a 64-bit DLL won't work on a 32-bit machine.

  • If the DLL is compatible, then the problem may be in your java library path. I put my DLL into the user.dir directory and then I used this code:

    Set Java library path to user.dir or maybe another path you want:

     String myLibraryPath = System.getProperty("user.dir");//or another absolute or relative path
    
     System.setProperty("java.library.path", myLibraryPath);
    

    Load the library:

     System.loadLibrary("libraryWithoutDLLExtension");
    

It worked for me, try it and tell me if it works for you.