JNI调用机制
Java Native Interface(JNI)是Java本地接口,所谓的本地(native)一般是指C/C++语言。当使用Java进行程序设计时,一般主要有三种情况需要C语言的协助:
- 调用驱动:由于操作系统所提供的驱动一般都是C接口,Java语言本身不具备操作这些驱动的能力;
- 对于某些大量数据处理的模块,Java的效率可能远低于C,因此,希望使用C去完成;
- 对于某些功能模块,可能Java和C的效率差不多,但是这些模块中已经存在已有的C代码,程序员不想再用Java重写,而只想重新利用已有的C代码;
以上就是Java提出JNI概念的原因。JNI接口主要包含两种情况:第一种是从Java中访问C,第二种是从C中访问Java;
从Java中访问C
Java中可以定义某个函数为native类型,对于native函数,只需要声明即可,因为该函数的实现是native的,即由相应的C去实现。Java编译器遇到native函数时,不会关心该函数的具体实现,因此,编译上不会出任何差错。
程序运行时,在调用native方法之前,必须把C所生成的动态库装载进来,否则程序会因为找不到相应的native方法而出错。
-
-
-
-
-
-
-
-
-
-
-
-
------------------last line for now-------------------