之前转载过一篇window下jni的使用,不过对于我等小菜鸟来说真是一把辛酸泪,本人电脑是win7 64位的,按照之前那篇博客根本不行,到最后都是会报64位平台用了32位dll文件,后来下了个64位的mingw还是不行,编dll的时候说我参数错误,到网上一搜都没怎么写64位如何用mingw来编dll,都用什么vs之类的,实现不行,我只能来到linux下来弄jni了。(ps:那篇文章我在win32下证实是可以的)
虽然操作系统不一样,但这个步骤基本一致,依旧是先写java文件,再用javah弄出.h文件,再写c文件实现.h文件,然后再编so文件,编so文件要注意一点,在java文件中引用so库的名字为“a”的话,那么编出来的名字要叫“liba.so”,前面要加lib,(ps:中间这一系列步骤可以参考前面那篇jni的文章,步骤是一样的)
gcc -I/usr/lib/jvm/java-6-sun-1.6.0.24/include/linux -I/usr/lib/jvm/java-6-sun-1.6.0.24/include/ -fPIC -shared -o libJNI.so TestJNI_impl.c(ps:这中间的参数包含java的路径根据实际情况改)
编完之后再添加环境变量
export LD_LIBRARY_PATH=`pwd`:$LD_LIBRARY_PATH
这就大功造成了。