当前位置: 技术问答>java相关
关于JNI的问题
来源: 互联网 发布时间:2015-08-15
本文导语: 在freebad下写的一个JNI的HelloWorld的例子,需要调用一个名为“hello”的共享库,跟java的class文件在统一目录下。运行时出现如下错误提示: %java HelloWorld Exception in thread "main" java.lang.UnsatisfiedLinkError: no hello in java.l...
在freebad下写的一个JNI的HelloWorld的例子,需要调用一个名为“hello”的共享库,跟java的class文件在统一目录下。运行时出现如下错误提示:
%java HelloWorld
Exception in thread "main" java.lang.UnsatisfiedLinkError: no hello in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1312)
at java.lang.Runtime.loadLibrary0(Runtime.java:749)
at java.lang.System.loadLibrary(System.java:820)
at HelloWorld.(HelloWorld.java:8)
请问如何解决~??
%java HelloWorld
Exception in thread "main" java.lang.UnsatisfiedLinkError: no hello in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1312)
at java.lang.Runtime.loadLibrary0(Runtime.java:749)
at java.lang.System.loadLibrary(System.java:820)
at HelloWorld.(HelloWorld.java:8)
请问如何解决~??
|
应该是java.library.path设的不对吧?试试
java -Djava.library.path=. HelloWorld
java -Djava.library.path=. HelloWorld
|
或者编辑profile文件,
添一行
LD_LIBRARY_HOME=.
export LD_LIBRARY_HOME
添一行
LD_LIBRARY_HOME=.
export LD_LIBRARY_HOME
|
可能你的共享库编译的不对,要用javah 编译成的头文件中定义的名字
来编写本地方法。然后在编译成共享库。把源程序都拿来看看吧
来编写本地方法。然后在编译成共享库。把源程序都拿来看看吧
|
编.so的时候应该加一个什么选项来着
|
System.loadLibrary(dllName)中的dllName是否为"hello"?