您的位置:首页 > 运维架构 > Linux

linux/ubuntu下使用jni的demo

2013-03-16 17:40 274 查看
1环境:
     1)系统:Linux ubuntu 3.2.0-32-generic-pae #51-Ubuntu SMP Wed Sep 26 21:54:23 UTC 2012 i686 i686 i386 GNU/Linux
     2)gcc编译器:gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
     3)jdk:jdk1.6.0_34

2.使用jni的基步骤
    1)在java文件中声名本地方法;
    2)用javah 生成本地方法的头文件;
    3)在c/cpp文件中定义本地方法,编译生成动态库;
    4)用javac编j译java代码,接着用java执行使用jni的java程序(注意-Djava.library.path的使用,或者把自己编的动态库的路径添加到系统动态库的路径中)

3.简单demo(javah\gcc\java的使用)
     1)javah -jni HelloWorld
     2)gcc -shared -I /home/luogw/dev-tool/jdk/jdk1.6.0_34/include/ -I /home/luogw/dev-tool/jdk/jdk1.6.0_34/include/linux/ HelloWorld.c -o libHelloWorld.so

     3)java -Djava.library.path=.  HelloWorld

4.注意事项
     1)生成so时,需要加前缀lib,loadLibrary时不需要写lib前缀
     2)最好是使用 -Djava.library.path 让jvm能找你自己编写的动态库
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: