Linux下编写JNI接口

本文详细介绍了在Linux系统中如何使用JNI技术编写和调用动态库。首先讲解了安装Java、编写Java接口和加载动态库的基本步骤,然后阐述了生成C/C++头文件、实现native函数以及编译动态库的过程。最后提到了动态库的打包和运行时注意事项,包括设置LD_LIBRARY_PATH以加载库文件。
摘要由CSDN通过智能技术生成

1. 安装Java,不赘述。

2. 编写Java接口代码,示例如下:

package com.xxx.jni;

public class JniTest {

    static {
        System.loadLibrary("test");
    }

    public native void test(int a, byte[] b);
}

主要内容:

1)package。模块所在的包

2)class JniTest。模块名

3)System.loadLibrary。需要加载的动态库名称,“test”表示库名为libtest.so。函数放在static语句块中,保证模块被加载时立即加载动态库。

4)public native void test。声明native函数。native函数使用C/C++实现,libtest.so需要包含它的实现。

保存文件名为JniTest.java。

3. 生成对应C/C++头文件

命令行执行:javac -h . JniTest.java,其中-h指定了存放头文件的目录,不可省略。

(jdk10之前使用命令javah -d . JniTest.java,之后javah被javac替代)

本命令会在当前目录生成头文件com_xxx_jni_JniTest.h和Java class文件JniTest.class。JniTest.class暂时不用管,头文件内容如下:

/* DO NOT EDIT THIS FILE - it is machi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值