目录结构:

contents structure [+]

想必读者已经了解过native关键字了。这里笔者就大致囊括一下,被native关键字修饰的方法叫做本地方法,本地方法和其它方法不一样,本地方法意味着和平台有关,因此使用了native的程序可移植性都不太高。另外native方法在JVM中运行时数据区也和其它方法不一样,它有专门的本地方法栈。native方法主要用于加载文件和动态链接库,由于Java语言无法访问操作系统底层信息(比如:底层硬件设备等),这时候就需要借助C语言来完成了。被native修饰的方法可以被C语言重写。

2,使用native关键字

2.1,使用步骤

  • Java程序中声明native修饰的方法,类似于abstract修饰的方法,只有方法签名,没有方法实现。编译该java文件,会产生一个.class文件。
  • 使用javah编译上一步产生的class文件,会产生一个.h文件。
  • 写一个.cpp文件实现上一步中.h文件中的方法。
  • 将上一步的.cpp文件编译成动态链接库文件.dll。
  • 最后就可以使用System或是Runtime中的loadLibrary()方法加载上一步的产生的动态连接库文件了。

2.2,案例

为了更好理解,该案例的所有都在文件在 D:\JNI\ 目录下。

2.2.1 编写.java文件

public class HelloWorld{
    public native void h();//该方法和abstract修饰的方法一样,只有签名。
    
    static{
        System.loadLibrary("hello");//不写文件的后缀,程序会自动加上.dll的。
    }
    
    public static void main(String[] args){
        new HelloWorld().h();//调用
    }
}
HelloWorld.java

相关文章:

  • 2022-12-23
  • 2021-07-08
  • 2022-01-27
  • 2021-12-16
  • 2021-10-04
  • 2022-01-15
猜你喜欢
  • 2022-01-01
  • 2022-12-23
  • 2021-07-17
  • 2021-10-09
  • 2021-09-05
  • 2021-10-22
相关资源
相似解决方案