jni c++ dll java

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

c++->.dll    (windows)linux

c++->.so    (linux)c++

因此加载时,只要指定名就好了.windows

开发步骤;spa

/*开发

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

 

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

//定义一个方法;class

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);

    }test

}扩展

>>>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

就能够看到结果了

相关文章
相关标签/搜索