I want to use JNI on Ubuntu 8.10, using Eclipse and gcc (the standard one with Ubuntu if there are flavours).
I can't seem to load my library despite the make file creating it successfully.
The main Java class is as follows:
class Hello { public native void sayHello(); static { System.loadLibrary("hello.so"); } public static void main(String[] args) { Hello h = new Hello(); h.sayHello(); } } My make file is as such;
all : hello.so hello.so : Hello.o gcc -shared -o hello.so Hello.o Hello.o : Hello.c Hello.h gcc -I/usr/lib/jvm/java-6-sun/include -I/usr/lib/jvm/java-6-sun/include/linux -c Hello.c -o Hello.o Hello.h : Hello.class javah -jni Hello clean : -del Hello.h -del Hello.o The rest of the code (Hello.c) looks like one would think.
The error I'm getting is as follows;
Exception in thread "main" java.lang.UnsatisfiedLinkError: no hello.so in java.library.path If I use an explicit path:
System.loadLibrary("/home/gavin/Work/workspace/JNI/hello.so"); Then it works, but I'd much rather not use an explicit path if possible.