返回信息流java调用c或者c++的函数,java代码中是不是一定要出现System.loadLibrary("XXX");或者System.load("YYY");的语句?
上面的XXX是不是只能是被调用的函数的实现所在的.c文件或者.c++文件的文件名?如果有文件重名怎么办?
谢谢大家~
这是一条镜像帖。来源:北邮人论坛 / java / #17190同步于 2011/2/10
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
问一个关于JNI的问题
genius1wjc
2011/2/10镜像同步5 回复
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
1、java调用c或者c++的函数,java代码中是不是一定要出现System.loadLibrary("XXX");或者System.load("YYY");的语句?
必须得有System.loadLibrary("XXX");或者System.load("YYY");这是把c或c++文件所在的库载入虚拟机中,这样虚拟机才能找到所调用的方法
2、上面的XXX是不是只能是被调用的函数的实现所在的.c文件或者.c++文件的文件名?如果有文件重名怎么办?
XXX应该是c或c++文件所在的库名,这些库名是需要指明具体路径的(也有可能不需要指明路径,但是需要放到特定路径中,这点不敢确定),所以不存在同名的情况。
【 在 genius1wjc 的大作中提到: 】
: java调用c或者c++的函数,java代码中是不是一定要出现System.loadLibrary("XXX");或者System.load("YYY");的语句?
: 上面的XXX是不是只能是被调用的函数的实现所在的.c文件或者.c++文件的文件名?如果有文件重名怎么办?
: 谢谢大家~
: ...................
【 在 hotcode 的大作中提到: 】
: 1、java调用c或者c++的函数,java代码中是不是一定要出现System.loadLibrary("XXX");或者System.load("YYY");的语句?
: 必须得有System.loadLibrary("XXX");或者System.load("YYY");这是把c或c++文件所在的库载入虚拟机中,这样虚拟机才能找到所调用的方法
: 2、上面的XXX是不是只能是被调用的函数的实现所在的.c文件或者.c++文件的文件名?如果有文件重名怎么办?
: ...................
在linux里面,这个“库”的名字怎么体现?一定是文件夹的名字吗?某些资料是说这是库文件名...
查到这样的资料:
XXX必须是在java.library.path这一jvm变量所指向的路径中。
可以通过如下方法来获得该变量的值:
System.getProperty("java.library.path");
【 在 SINe 的大作中提到: 】
: 先保证你的c程序指针没乱飘
: 否则你的jvm都将报废
: 建议能不用就不用
: ...................
不是我想不想用的问题,我只是想找到一个java类中调用的本地方法的实现所在的文件