在unix下用如下指令设置:
setenv LD_LIABRARY_PATH yourlibpath其它的不大清楚。一般是class文件存在的目录。另外如果你的语句是这样:System.loadLibrary("hello");
那么,在unix下,你的库文件必须是libhello.so。hello前面的lib不能少。
setenv LD_LIABRARY_PATH yourlibpath其它的不大清楚。一般是class文件存在的目录。另外如果你的语句是这样:System.loadLibrary("hello");
那么,在unix下,你的库文件必须是libhello.so。hello前面的lib不能少。
用没用gcc -shared ?或者你用 echo $LD_LIBRARY_PATH 看看是不是生效了。
已试过的方法:
1、在/root/.bash_profile中设置LD_LIBRARY_PATH,并且echo $LD_LIBRARY_PATH已经生效;
2、用System.setProperties()设置java_library_path系统变量;
3、使用共享库名为some.so,some.sl,libsome.so,libsome.sl,并用System.loadLibrary("some")调用;
4、重新用gcc -shared 编译共享库;
5、将共享库放在JAVA_HOME,JAVA_HOME/lib和当前目录下,甚至是/usr/lib目录下。
都没起作用,为什么?
Step 1. HelloWorld.javaclass HelloWorld {
public native void displayHelloWorld(); static {
System.loadLibrary("hello");
}
public static void main(String[] args) {
new HelloWorld().displayHelloWorld();
}
}