JNI即Java Native Interface,是Java平台上的一种机制,用于实现Java虚拟机和本地代码之间的交互。通过JNI,Java程序可以调用本地库(native library)中的函数,也可以将Java代码暴露给本地代码调用。
由于Java虚拟机以及大部分Java类库都是用Java语言实现的,因此无法直接访问一些本地系统资源(例如操作系统的API,硬件接口等),这就需要通过JNI技术来实现。
JNI提供了一系列的API,可以用于从Java代码中调用本地C/C++函数,也可以将Java对象转换为本地C/C++中的数据类型,从而实现Java和本地代码之间的数据传递。
JNI还提供了一系列的函数,可以用于在本地代码中调用Java代码,从而实现Java和本地代码之间的双向交互。
JNI的使用需要一定的C/C++语言基础,也需要了解Java虚拟机的内部工作原理,因此使用时需要仔细考虑。
下面是java程序类调用
1. 编写TestJNI java类,使用native关键字调用C
System.load()为文件的绝对路径,或相对路径下的动态库文件的全限定名称
System. loadLibrary() 文件的相对路径, 这里,必须是在java.library.path这一jvm变量所指向的路径中。</