2023-01-29
班门弄斧
00
请注意,本文编写于 662 天前,最后修改于 319 天前,其中某些信息可能已经过时。

目录

简介
概述
native方法开发方式
拓展
Java代码示例

简介

阅读Java源码,经常能看到native关键字修饰的方法,如Object类中的getClass()、clone()等等方法,都使用了native关键字,使用native的作用是什么呢?

概述

简单来讲,使用native修饰的方法,是不能被实现的方法,底层是调用的本地API,常见的就是调用C语言开发的API。

参考文章:Java关键字——native

native方法开发方式

虽然使用native修饰的方法不能被实现,但是可以自己去开发一个本地API,然后就可以使用native修饰的方法调用该API,这样也算是变相实现了native修饰的方法。

开发步骤大致如下:

  1. 编写Java类,并编写native方法;
  2. 使用javac命令编译Java代码;
  3. 使用javah -jni xxx命令生成xxx.h的c语言文件;
  4. 编写xxx.h文件,实现要被调用的方法;
  5. 编译xxx.h文件,生成对应的dll文件;
  6. Java类中加载编译好的dll文件,即可调用xxx.h中实现的方法。

拓展

native一般用于Java语言无法直接实现的功能,比如操作系统硬件,如:内存、打印机等等。此类功能可以使用C、C++等语言开发,编译后生成dll库文件,然后使用Java调用即可。

由此可见,要想开发native类型的方法,最好要掌握一门其他语言。

native方法其实就是Java中的JNI(Java Native Interface)的实现方式,JNI详细情况可自行了解,上面参考文章中也有介绍。

Java代码示例

java
public class HelloJNI { // native 关键字告诉 JVM 调用的是该方法在外部定义 private native void helloJNI(); static{ System.loadLibrary("helloJNI"); //载入本地库 } public static void main(String[] args) { HelloJNI jni = new HelloJNI(); jni.helloJNI(); } }
如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:DingDangDog

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!