关于Windows JNI使用,我在上一篇博客中已经详细说明
https://blog.csdn.net/qq_28398393/article/details/90580729
本篇博客主要介绍 在 ubuntu下,如何使用 JNI
一,环境:
ubuntu16.04,gcc
二,使用方法:
1.创建一个java文件(JNITest.java)
采用load函数装载动态链接库,要使用绝对路径
2.使用javac 命令编译java文件,在终端输入”javac JNITest.java”。生成JNITest.class
3.使用javah命令生成头文件。在终端输入“javah –jni JNITest”,生成JNITest.h
4.使用本地方法实现头文件的方法
5.用gcc编译生成so文件
gcc -fPIC -shared -I /usr/java/jdk1.8.0_74/include -I /usr/java/jdk1.8.0_74/include/linux JNITest.c -o JNITest.so
解释一下: -I <dir> 的意思是HelloWorld.c中使用#include<jni.h>, gcc默认目录是"/usr/include",如果使用#include<jni.h>则找不到jni.h文件,因此要通过“-I <dir>”参数来指 定包含的头文件jni.h的位置。
6.运行,
在终端输入 java JNITest.
补充:
也可以采用loadLibrary的方式加载动态链接库,实现方式
(1)首先将client.so前加上lib前缀,libclient.so;否则会出错。java文件加载动态链接库时,不需要加lib前缀。即System.loadLibrary("client");
(2)采用LD_LIBRARY_PATH方式添加动态链接库的目录,
在 /etc/profile中添加动态链接库的目录。
(3)source /etc/profile
(4)运行 java client即可
欢迎补充 动态链接库添加方式。