阅读Java源码,经常能看到
native
关键字修饰的方法,如Object
类中的getClass()、clone()
等等方法,都使用了native
关键字,使用native
的作用是什么呢?
简单来讲,使用native
修饰的方法,是不能被实现的方法,底层是调用的本地API,常见的就是调用C语言开发的API。
参考文章:Java关键字——native
虽然使用native
修饰的方法不能被实现,但是可以自己去开发一个本地API,然后就可以使用native
修饰的方法调用该API,这样也算是变相实现了native
修饰的方法。
开发步骤大致如下:
native
方法;javac
命令编译Java代码;javah -jni xxx
命令生成xxx.h
的c语言文件;xxx.h
文件,实现要被调用的方法;xxx.h
文件,生成对应的dll
文件;dll
文件,即可调用xxx.h
中实现的方法。native
一般用于Java语言无法直接实现的功能,比如操作系统硬件,如:内存、打印机等等。此类功能可以使用C、C++等语言开发,编译后生成dll
库文件,然后使用Java调用即可。
由此可见,要想开发native
类型的方法,最好要掌握一门其他语言。
native
方法其实就是Java中的JNI(Java Native Interface)
的实现方式,JNI
详细情况可自行了解,上面参考文章中也有介绍。
javapublic class HelloJNI {
// native 关键字告诉 JVM 调用的是该方法在外部定义
private native void helloJNI();
static{
System.loadLibrary("helloJNI"); //载入本地库
}
public static void main(String[] args) {
HelloJNI jni = new HelloJNI();
jni.helloJNI();
}
}
本文作者:DingDangDog
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!