Java无法直接访问到操作系统底层,因此使用native方法来扩展Java程序的功能。
native修饰的方法说明,这个方法对应的实现不在当前文件中,而是用其他语言(如C,C++)实现的文件中。因为Java语言本身不能对操作系统底层进行访问和操作,但是可以通过JNI接口调用其他语言来实现对底层的访问。
可以将native方法比作Java程序和C程序的接口,其实现步骤:
JNI的书写步骤如下:
a.编写带有native声明的方法的Java类
b.使用javac命令编译编写的Java类
c.使用javah -jni ****来生成后缀名为.h的头文件
d.使用其他语言(C、C++)实现本地方法,还需要include <jni.h>
e.将本地方法编写的文件生成动态链接库
JAVA的native方法适用的情况:
1、为了使用底层的主机平台的某个特性,而这个特性不能通过JAVA API访问。
2、为了访问一个老的系统或者使用一个已有的库,而这个系统或这个库不是用JAVA编写的。
3、为了加快程序的性能,而将一段时间敏感的代码作为本地方法实现。