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能找你自己编写的动态库