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

就能夠看到結果了

相關文章
相關標籤/搜索