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
就可以看到结果了
来源:oschina
链接:https://my.oschina.net/u/247181/blog/51526