当前所在位置:首页 > 关于我们 > 资讯中心

LKT5103A Hid接口LINUX系统下JNI开发流程

发布时间:2019-10-15

一、什么是JNI
       Java以其跨平台的特性深受人们喜爱,而又正由于它的跨平台的目的,使得它和本地机器的各种内部联系变得很少,约束了它的功能。解决Java对本地操作的一种方法就是JNI。JNI是Java native interface的简写,意为Java本地调用,它允许Java代码和其他语言写的代码进行交互,从Java1.1开始,JNI标准成为Java平台的一部分。
       使用Java与本地已编译的代码交互,通常会丧失平台可移植性。但是,有些情况下这样做是可以接受的,甚至是必须的。例如,与硬件、操作系统进行交互,或者为了提高程序的性能。
二、平台以及环境
       (1)开发平台
       Linux系统或者虚拟机。
       注意:因为涉及到LINUX下的HID接口,所以保证开发的系统内核在2.6版本以上。
       (2)开发包
              1):安装gcc和g++,保证两个版本一致。
                     安装指令:
                                     yum install gcc
                                     yum install gcc-c++
                     查版本指令:
                                    g++ --version
                                    gcc --version
              2)安装jdk环境。具体可以上网上找资料。
             以debian系统为例,在终端运行的安装指令如下:
                                    sudo apt-get update
                                    sudo apt-get install default-jre
                                    sudo apt-get install default-jdk
       三、开发步骤
              1)、创建一个Java程序(如LKT5103AJni.java)定义原生的c/c++函数。
              2)、用javac编译(指令:javac LKT5103AJni.java) LKT5103AJni.java生成 LKT5103AJni.class。
              3)、用javah带-jni参数编译(指令:javah -jni LKT5103AJni) LKT5103AJni.class生成 LKT5103AJni.h文件,该文件中 定义了c的函数原型。在实现c函数的时候需要。
              4)、创建LKT5103AJni.c,实现LKT5103AJni.h定义的函数。
              5)、编译LKT5103AJni.c生成libLKT5103AJni.so。
              指令:gcc -I/usr/lib/jvm/java-8-openjdk-amd64/include/ -I/usr/lib/jvm/java-8-openjdk-amd64/include/linux -fPIC -shared -o libLKT5103AJni.so LKT5103AJni.c
              6)、创建testJni.Java,实现测试jni接口。
              7)、编译testJni.java(指令:javac testJni.java)。
              8)、运行测试代码。
            (指令:export LD_LIBRARY_PATH=./   java testJni   或者:java -Djava.library.path=. testJni)
上一篇:LKT5103A基于Linux系统下的QT编程 下一篇:欢庆祖国70华诞