JNI使用--ubuntu篇

    xiaoxiao2025-06-11  26

    关于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即可

    欢迎补充 动态链接库添加方式。

    最新回复(0)