日期:2014-05-16  浏览次数:20765 次

linux/ubuntu下使用jni的demo
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能找你自己编写的动态库