java 硬件接口_Java调用硬件接口

本文介绍了Java调用硬件接口的三种常见方式:JNI、Jawin和Jacob。JNI是Java自带的跨平台解决方案,但使用较为复杂,需要C/C++编程。Jawin通过原始字节流传递数据,简化调用过程,但仅适用于Windows,且调试困难。Jacob基于JNI,调用COM和DLL便捷,同样局限于Windows。根据具体需求和平台限制,开发者可以选择适合的调用方式。
摘要由CSDN通过智能技术生成

使用Java调用DLL动态链接库的方案通常有三种:JNI, Jawin, Jacob. 其中JNI(Java Native

Interface)是Java语言本身提供的调用本地已编译的函数库的方法,本身具有跨平台性,可以在不同的

机器上调用不同的本地库。Jawin和Jacob都是sourceforge.net的开源项目,都是基于JNI技术的依赖Wi

ndows的实现,使得在Windows平台下使用COM和DLL的更加方便。

一、JNI(Java本地方法调用)

JNI的应用方案是基于Java类和本地函数相映射的。其使用DLL的步骤还是相对比较麻烦,不但涉及

到Java编程,还涉及到C/C++编程。

JNI的使用步骤是:

1. 编写Java类,用该类将DLL对外提供的函数服务进行声明,其中的Java方法均声明为native,其方法

签名可以自定义,不用实现函数体。

2. 用Javah工具将该Java类生成对应的.h头文件。

3. 最重要的比较麻烦的一步:编写C/C++代码实现.h头文件中声明的函数,该C/C++代码中包含jni.h头文

件,并且编写代码时使用其中定义好的数据类型作为函数的输入和返回数据类型进行编程。用这种方法

实现数据类型转换。在该步骤中,可以在C/C++代码中调用已经存在的DLL库(当别人给我们提供一个现

成的dll控件时,我们只知道接口,不能改变它的实现,就需要“自定义的dll”调用“现成dll”)

4. 另外编写的Java代码时就可以使用该Java类了。

在第3步中

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值