java+JNI 生成包头文件与调用实例
最近项目需要使用JNI调用c++动态库,在网上找了些相资料大部分都是dll 的调用生成,so方面的比较少,不是很全所以刚刚测试通过就把自己的心得写下来了。
1.在项目包中定义自己和C++调用接口类;
2.将java编译好的class文件用javah -jni 打包成头文件.h
这里我的Class文件放在target\classes文件下,com.decard.util是我的包名,ControlInterface是我的类名运行生成后会在classes 生成一个com_decard_util_ControlInterface.h头文件;
3.编写C++动态库生成so或dll 文件,我的是Linux系统所以生成的是so文件,放在syslib路径下libControlInterface.so ;
4.编写动态库调用类代码如下:
public class ControlInterface {
static{
System.loadLibrary("ControlInterface");
}
/**
*
* @param InUserData 用户输入环境数据
* @param userID 用户ID
* @return 返回字符串数据
*/
public native static String initConnection(String InUserData,String userID);
/**
*
* @param Date 业务操作数据
* @param userID 用户ID
* @return
*/
public native static String businessService(String Date,String userID);
/**
*
* @param IPAddress 用户访问IP地址
* @param userID 用户ID
* @return
*/
public native static void initAddress(String IPAddress,String userID);
注意编写的动态库调用类尽量使用生成头文件接口类,如果不想使用这个类可以new ControlInterface 的方式进行调用如:
public static Proce***esultBean infoConnection(String data,String userInfo){
ControlInterface ci=new ControlInterface();
String getback = ci.initConnection(data, userInfo);
log.info("返回数据:"+getback);
Proce***esultBean resultBean = new Proce***esultBean();
resultBean.setData(getback);
resultBean.setUserInfo(userInfo);
return resultBean;
}
因为我的接口和实现类不是同一个包所采用的new ControlInterface;
转载于:https://blog.51cto.com/1412404/1168364
java+JNI 生成包头文件与调用实例相关推荐
- 生成jni的android.mk,Android Studio 3.5版本JNI生成SO文件详解
学习在于记录,把自己不懂得容易忘记得记录下,才是最好得选择. 废话不多说,想要在Android开发中嵌入c/c++代码,直接开始如下步骤 1.创建需要调用的Java类 在你某个指定的包下创建如下类pa ...
- java动态生成pdf文件的方法
java动态生成pdf文件 文章目录 java动态生成pdf文件 前言 一.生成pdf模板 二.使用步骤 1.使用jar包 2.pdf实现方法 总结 前言 java开发过程中难免会遇到生成文件的需求, ...
- Java如何通过WSDL文件来调用这些web service
下面我们来看Java如何通过WSDL文件来调用这些web service: 注意,以下的代码并没有经过真正的测试,只是说明这些情况,不同版本的Axis相差很大,大家最好以apache网站上的例子为准, ...
- Java建立Zip压缩文件的代码实例
Java建立Zip压缩文件的代码实例 Java代码 import java.io.*; import java.util.zip.*; class Zip { public static void m ...
- java 模板生成PDF文件 复选框勾选
java 模板生成PDF文件 复选框勾选 // pdf填充时要有第三个参数s.setField("A", On, true);
- java poi 生成excel_利用POI生成EXCEL文件的方法实例
一.背景 Apache POI 是创建和维护操作各种符合Office Open XML(OOXML)标准和微软的OLE 2复合文档格式(OLE2)的Java API.用它可以使用Java读取和创建,修 ...
- 使用Cython库包对python的py文件(源码)进行加密,把python的.py文件生成.so文件并调用
文章目录: 1 准备环境 2 调用`Cython库包`把python的`.py`文件生成`.so`文件 2.1 写源码文件 2.2 调用源码接口 2.3 调用Cython库把`.py`源码生成`.so ...
- java使用flex生成swf_flex动态生成矢量swf字体--java动态生成swf文件
前言 相信很多在线设计的前端WEB应用会用到字体作为素材的案例,丰富多样的字体一般是部署在服务器端让用户去选择,而且能动态部署,使用客户端字体显然是不可取的: 现状 然而中文字体动不动就几个M,做过f ...
- python隐藏源码,生成pyd文件并调用的完整过程
目录 pyd 特点及生成方式 首先需要在 demo.py 同目录下新建个 setup.py 文件,具体代码如下 在生成之前或许我们需要先做一个事情,那就是安装vs_buildtools 在命令行 ...
最新文章
- Bitbucket免费的私有仓库
- win7为什么没有计算机,教你win7如何快速找出电脑没声音问题所在-win7之家
- JAVA 内存泄露详解(原因、例子及解决)
- JAVA Socket实现多客户端聊天
- 【图像超分辨率论文】BasicVSR: The Search for Essential Components in Video Super-Resolution and Beyond
- 欲取代硬盘?SSD固态存储器前景分析
- 案例:控制文件序列号满故障处理和分析
- 特斯拉FED在美售价上调至1.2万美元 国内售价6.4万元
- C#链接各种数据库代码总结
- iOS build faad
- JAAS Authorization文档
- Dynamics CRM 365 - 零基础入门学习后端插件语法总结(样例使用方法)
- 免费url长网址缩短压缩工具评测,短链接在线生成器推荐。
- 一些.NET的开源项目资料
- TCP编程-端口扫描器
- 以前手机应用java咖啡_作为编程语言的“java”怎么就成了咖啡的代称?
- OSG开发笔记(二十五):OSG漫游之CS移动、碰撞检测与跳跃
- Element-Plus中日期时间选择器组件DateTimePicker默认显示英文的问题
- 怎么在苹果手机上进行时间管理?
- 【RF基础】RF调用python函数基础
热门文章
- matlab表格三维柱状图,excel制作四维数据表格-excel三维柱形图 ,请问如何根据excel表格中的数据......
- 基于信息熵确立权重的topsis法_基于信息熵和TOPSIS法的装备战场抢修排序决策模型...
- 素数在c语言中怎么表示,请问素数怎么样表示
- mysql索引数据结构图解_干货:mysql索引的数据结构
- java自动生成函数注释_IDEA类和方法注释自动生成(2019-08-31 21:47写)
- 堆积柱形图显示总数_在Excel堆积柱形图中显示合计值
- android 画圆角背景颜色,android圆角矩形有背景颜色
- 怎么判断子元素距离父元素顶部位置_css子元素如何相对父元素定位?
- 中文文本对齐_终于明白Word如何快速对齐姓名!为之前狂敲空格的我,留下一把泪...
- 大多数元素python_学Python必知的20个技巧,掌握它们,准没错