使用C/C++实现Java的Native方法接口(JNI)(1)快速上手

这篇博客介绍了如何使用C/C++实现Java的JNI接口,从快速上手到实例详解,包括C和C++版本。内容涵盖在Java类中声明JNI、使用javah工具生成头文件、编写C/C++实现、编译动态链接库、测试及打包为jar。
摘要由CSDN通过智能技术生成

JNI编程(C/C++)

第1节:快速上手

在java类中定义JNI

在类中使用native声明一个没有方法体的方法

// file location: $ProjectDir/src/pers/h01c/jni/helloJni.java

package pers.h01c.jni;

public class helloJni {
   

    public native void helloWorld(String inputArg);
    public native static String staticHelloWorld(String inputArg);

}

使用Java的javah工具生成.h

$JAVA_HOME/bin/javah -jni -classpath $ProjectDir/src/ -d $ProjectDir/jni/ pers.h01c.jni.helloJni

使用javah -help获得帮助文档

- Usage:
    javah [options] <classes>
- option: 
    -d <dir>: Output directory # 指定生成.h的文件夹
    -jni: Generate JNI-style header file  # 生成jni头
    -classpath/-cp <path>: Path from which to load classes  #指定从哪里寻找这个类
- <class>:
    specify with their fully qualified names #需要指定类的全名

生成出来的.h文件(路径是$ProjectDir/jni/pers_h01c_jni_helloJni.h)如下

/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class pers_h01c_jni_helloJni */

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值