JNI技术解析
创始人
2024-03-20 09:32:07

一、JNI是什么?

JNI是Java Native Interface的缩写,译为Java本地调用。JNI是一种技术。

二、JNI技术的用途?

  • Java程序中的函数调用Native程序中的函数。Native一般指使用C/C++编写的函数。
  • Native程序中的函数调用Java程序中的函数。

三、注册JNI函数

  • 静态注册

  Java层函数通过Java编译成.class文件,再通过Javah工具将将.class生成为JNI层的*.h头文件,在*.h头文件里有对应Java层的函数,在JNI层实现相关函数即可。

javah -o test packagename.classname
  • 动态注册

  Java Native函数与JNI函数是一一对应的关系,所以,有一个数据结构存储着对应关系,这个数据结构就是JNINativeMethod结构体。

typedef struct {const char* name;const char* signature;void* fnPtr;
} JNINativeMethod;

JNINativeMethod name:Java函数名称,不包括包路径。

JNINativeMethod signature:Java函数签名,用字符串存储,签名信息由参数类型+返回值类型组成。

JNINativeMethod fnPtr&#

相关内容

热门资讯

(经济观察)未来货币是“瓦特”... 中新社北京1月30日电 (记者 王梦瑶)电力,被业界认为是“算力的尽头”。特斯拉创始人马斯克近日称未...
巴基斯坦军方说在俾路支省打死4... 转自:新华社新华社伊斯兰堡1月30日电 (记者 杨恺)巴基斯坦三军新闻局30日发表声明说,巴安全部队...
我爱我家:预计2025年净亏损... 1月30日,我爱我家控股集团股份有限公司(000560.SZ)发布2025年度业绩预告。公告显示,经...
斯塔默在沪出席酒会致辞:希望中... 1月30日晚,英国首相斯塔默在上海的西岸漩心出席中英商务招待酒会。在酒会致辞的开始,斯塔默就提到西岸...
怕输给“星链”?法国政府阻止欧... 法国经济、财政和工业、能源与数字主权部部长罗兰·莱斯屈尔30日向媒体披露,法国政府近日阻止了欧洲通信...