jni c++ dll java

我怕爱的太早我们不能终老 提交于 2019-12-10 13:57:21

java通过jni 来调用.dll(在linux中称为.so文件)

c++->.dll    (windows)

c++->.so    (linux)

所以加载时,只要指定名就行了.

开发步骤;

/*

     * 1.建立java工程编写带有native声明的方法的java类
     * 2.用javac命令编译所的java类
     * 3.使用javah java类名生成扩展名为h的头文件
     * 4.使用c/c++实现 本地方法,并生成动态连接库 5.把库文件拷贝到java工程上当下,运行java程序
*/

 

public class ArrayTest {
    static
    {
        System.loadLibrary("liujian");
    }

//定义一个方法;

private native int sumArray(int[] arr);
    public static void main(String[] args) {
        ArrayTest test=new ArrayTest()
        ;
        int arr[] =new int[10];
        for(int i=0;i<10;i++)
        {
            arr[i]=i;
        }
        test.sumArray(arr);

    }

}

>>>javac ArrayTest.java

>>>javah ArrayTest  

生成了个ArrayTest.h文件

vc++创建个windows 32 dll空工程。

/jdk/include/jni.h 、/jdk/include/win32/jni_md.h

还有刚才的ArrayTest.h文件,一起复制到vc++下

创建c++文件,#include "ArrayTest.h"库,

实现方法,

生成dll.

把dll文件放到与ArrayTest.java同一个目录,

>>>java ArrayTest

就可以看到结果了

 

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!