Linux系统java调用c/c++库(jni快速实现)

 时间:2024-10-19 09:49:47

1、保证自己的Linux系统上有c/c++跟java环境。编写java程序。

Linux系统java调用c/c++库(jni快速实现)

2、回到包的最高目录下,编译java程序。javac net/zhangkun/HelloWorld.j锾攒揉敫ava (生成HelloWorld.class)然后继续编译生成头文件(给c/c++程序用)javah -jni -classpath . net.zhangkun.HelloWorld生成了net_zhangkun_HelloWorld.h (不要修改这个.h文件,可以加些头文件,其他的都不能改)

3、将net_zhangkun_HelloWorld.h复制到/opt/adminwebapps/k.zhnag/javatest/net/zhangkun/这个路径下(路径可以自己修改,我用这个路径举例,路径要与java里面加载库的路径一致)

4、新建一个a.cpp文件,编写c++库,把net_zhangkun_HelloWorld.h中的函数名复制到a.cpp文件中,函数名不要修改,函数下面添加自己的内容即可。

5、编译自己的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(看一下是否有关联其他库,如果有关联说明生成库没有问题)。

6、运行java程序看一下是否能进入so库中的函数。java net.zhangkun.HelloWorld

  • 如何用vim创建一个有while循环的c文档
  • Tomcat启动闪退现象解决办法
  • Centos 7虚拟机如何安装VMware Tools
  • 如何使用VS2012调试QT程序
  • idea如何自定义配置快捷键
  • 热门搜索
    薰衣草什么时候开花 肆无忌惮是什么意思 睡觉流口水什么原因 过氧化氢阳性什么意思 fpga是什么 疝气是什么病图片 滞销是什么意思 伏特加是什么酒 wife什么意思 1961年属什么生肖