【混合编程jni 】第十二篇 jnaerator

“持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第15天,点击查看活动详情

工欲善其事必先利其器,简单的函数我们可以手动的去写,但是复杂的结构体再让我自己写就有点过分了

,这样的生产方式有点低,而且可能写错,毕竟机器比人靠谱

这一节就介绍下JNA的工具jnaerator,将你从繁琐的且复杂的签名中解脱出来

jnaerator 来历

项目地址:GitHub - java-native-access/jna: Java Native Access

JNA 使 Java 程序可以轻松访问本机共享库,无需编写 Java 代码以外的任何内容 - 不需要 JNI 或本机代码。

Java 调用看起来就像本机代码中的调用一样。大多数调用不需要特殊处理或配置;不需要样板文件或生成的代码。

开发人员使用 Java 接口来描述目标本地库中的函数和结构。这使得利用本机平台特性变得非常容易

JNA jar包下载地址: jna -5.10.0.jar jna-jpms-5.10.0.jar

这是 JNA 的核心工件,仅包含绑定库和核心帮助程序类。

JNA平台

jna -platform-5.10.0.jar jna-platform-jpms-5.10.0.jar

该工件包含跨平台映射和许多常用平台功能的映射,包括大量 Win32 映射以及一组简化本机访问的实用程序类。代码经过测试,实用程序接口确保正确处理本机内存管理。

生成接口文件

脚本

java -jar jna-5.10.0.jar \
    -runtime JNA \
    -mode Directory \
    -o jna_code
    -package com.pdool
    -f ./library.h ./SSC.h  libtestCppJNA.so
复制代码

命令的说明文档:Command Line Options And Environment Variables · nativelibs4java/JNAerator Wiki · GitHub

太多了就不拷贝了

总结:

这节基本上没什么特殊的东西,主要还是为了说一下这个工具

工具的具体使用官网都有,自己看着试着谢谢就行了,没啥

猜你喜欢

转载自juejin.im/post/7108649935221817357
今日推荐