Java error - cannot find library in java.library.path?

56,435

Solution 1

You can simply pass java.library.path as a system property as shown below:

java -Djava.library.path=<path_to_dll> <main_class>

First you need to find out where the libraryname.dll is and add it above in "path_to_dll".

Solution 2

The error is basically saying it cannot find your native libraries. Java tries to locate your library by looking into java.library.path property

It's an System environment that you need so Java can find your native libraries when you run your application. Several ways to do it:

  • Use java -Djava.library.path=[path to your library] when running your program
  • From the code you could also do.

    
    System.setProperty( "java.library.path", "/path/to/libs" );
    
  • Set it up from your IDE. An example for Eclipse can be found in this SO question How to set java.library.path from eclipse

EDIT: A good comment below pointed out that #2 will not working 100% because you might not set this prior to calling getProperty(). Missed that point and thanks for pointing that out.

Share:
56,435
O_O
Author by

O_O

This is my face when I am coding: O_O

Updated on July 09, 2022

Comments

  • O_O
    O_O almost 2 years

    I am getting a error message like this:

    The library libraryname.dll could not be loaded by Windows. Make sure that the library is in you Path environment variable. Exception in thread "main" java.lang.UnsatifiedLinkError: no libraryname in java.library.path.

    This error is from me trying to run a jar file on Windows XP via cmd. I am wondering, where exactly is java.library.path? I've already added C:\Program Files\Java\jdk1.6.0_26 to my PATH but it still gives me the error. How would you go about debugging this?

    Thanks.