本文主要目的,快速实现java调用c/c 中的库函数。使用java中的jni
保证自己的Linux系统上有c/c 跟java环境。编写java程序。

回到包的最高目录下,编译java程序。
javac net/zhangkun/HelloWorld.java (生成HelloWorld.class)
然后继续编译生成头文件(给c/c 程序用)
javah -jni -classpath . net.zhangkun.HelloWorld
生成了net_zhangkun_HelloWorld.h (不要修改这个.h文件,可以加些头文件,其他的都不能改)
将net_zhangkun_HelloWorld.h复制到
/opt/adminwebapps/k.zhnag/javatest/net/zhangkun/这个路径下(路径可以自己修改,我用这个路径举例,路径要与java里面加载库的路径一致)
新建一个a.cpp文件,编写c 库,把net_zhangkun_HelloWorld.h中的函数名复制到a.cpp文件中,函数名不要修改,函数下面添加自己的内容即可。
编译自己的so库(记得添加jni.h)
g -fpic -shared a.cpp -o libgf.so -I./ -I/opt/jdk1.6.0_27/include -I/opt/jdk1.6.0_27/include/linux (-I后面是jdk,jni的路径)。
生成库之后ldd一下,ldd libgf.so(看一下是否有关联其他库,如果有关联说明生成库没有问题)。
运行java程序看一下是否能进入so库中的函数。
java net.zhangkun.HelloWorld
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
