JNI-java调用C++事例,获取byte[]有效数据

本文介绍了如何使用JNI在Java中调用C++动态库,详细步骤包括生成头文件、加载动态库以及从JNI方法中读取有效数据。在C++实现JNI时,数据返回到Java的ByteBuffer中,需要正确读取32个有效字符,避免处理填充的'0'。
摘要由CSDN通过智能技术生成

因为需要调用C ++的动态库所以使用了JNI,这里把它记录下来以便以后研究:

JNI是什么就不介绍了,网络上面一大推解释;

JNI的主要流程就是java的定义好方法,然后使用JAVAH生成头,把头文件和对应JDK里面的.H文件,C ++会根据头文件实现,然后生成动态库:

第一步:定义头文件方法 - 生成头文件:

package com.koala.auth.jni;


import java.nio.ByteBuffer;

/**
 * @Auther: gongyiyang
 * @Date: 2018/11/6 09:37
 * @Description:
 */
public class CDevice {

   

    public native int getDeviceSN(ByteBuffer byteBuffer);

}

使用命令生成头文件:

路径中如果有空格那就需要使用双引号;后面加了包名生成的头文件才会有包名:

将头文件和jni.he还有jni_md.h发送给C ++,赢得和linux下这两个文件是有系统差异的,所

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值