请问JNI加载多个本地库的问题

wangying 2004-11-04 12:23:56
我已经有一个C++实现的库liba.so,然后我想用JNI提供Java接口,编写.java文件,生成.class,然后javah -jni,然后实现JNI原型的函数,编译成一个新的libb.so,都没问题。在我的Java接口中有:
static
{
System.loadLibrary("a");
System.loadLibrary("b");
}

可运行时,老出错,不能解析liba.so中的符号。我改变两个库加载的顺序,没用!

于是,重新把liba和libb的源文件一起编译,生成新的libc.so,然后
static
{
System.loadLibrary("c");
}
然后运行,这下没问题了。

环境:redhat linux 9, jsdk1.4.2

这我就不明白了,难道jvm一次只能加载一个本地库??那如果各个so之间有依赖关系怎么办?

请教大虾,谢谢!!
...全文
163 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
fast_time 2004-11-29
  • 打赏
  • 举报
回复
不会吧,怎么会有这样的问题
Yujlyjl 2004-11-29
  • 打赏
  • 举报
回复
不会,学习中
Yanbin_Q 2004-11-29
  • 打赏
  • 举报
回复
要加载多个库的话就写在不同的类或方法中
Yanbin_Q 2004-11-29
  • 打赏
  • 举报
回复
你把两个动态库一同加载进来,java当然不知道你要调用的本地方法是在那个动态库中实现的。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧