I've got a java class, calling a native method and trying to load library:
import java.io.UnsupportedEncodingException; public class Main { public static native String getMyString(String s); /** * @param args * @throws UnsupportedEncodingException */ public static void main(String[] args) throws UnsupportedEncodingException { // TODO Auto-generated method stub // System.out.println("here!"); String s2 = getMyString("string text"); for (Byte b : s2.getBytes("UTF-8")) { System.out.print(b); System.out.print(","); } } static { System.loadLibrary("mylib.so"); } } The "mylib.so" is in the directory, where Main.class is located.
When I run java Main I get following exception:
Exception in thread "main" java.lang.UnsatisfiedLinkError: no mylib.so in java.library.path at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1856) at java.lang.Runtime.loadLibrary0(Runtime.java:845) at java.lang.System.loadLibrary(System.java:1084) at Main.<clinit>(Main.java:24) What should I change for this to wark?
I've tried setting library full path without success