JNI简介(一)

    xiaoxiao2021-03-25  76

    JNI:Java native interface

    开篇

    Java是跨平台的语言,但是有时候仍然需要调用本地代码(这些代码是C/C++写的)

    Sun公司提供JNIJava平台的一个功能强大的接口,这个jni接口提供了Java与操作系统本地代码互相调用的功能

    最简单的Java调用C/C++代码的步骤

    1首先在Java类中声明一个native的方法

    2使用Javah命令生成包含native方法定义的C/C++头文件

    3按照生成的C/C++头文件来写C/C++源文件

    4C/C++源文件编译成动态链接库(DLL

    5DLL文件加入到path环境变量下

    6Java类中加载DLL,然后调用声明的native方法

     

    在eclipse中创建native工程:

    在cmd中:

     

    这样生成了一个C/C++头文件,在c文件中引用该头文件,然后编写源文件实现,

     

    注意:头文件中引用的有些头文件是jdk提供的,要到jdk下去找,比如jni.hjni_md.h

     

    然后在Java中调用

     

    使用JNI的二个弊端

    1使用JNI,那么这个Java Application将不能跨平台了。如果要移植到别的平台上,那么native代码就需要重新进行编写

    2Java是强类型语言,而C/C++不是。因此,你必须在写JNI时更加小心

    总之,必须在构建Java程序的时候,尽量少用本地代码

    转载请注明原文地址: https://ju.6miu.com/read-35891.html

    最新回复(0)