JAVA语言通过JNI机制支持调用C\C++语言编写的DLL文件。
第一步:
创建一个class文件
package com.company;
public class NativeMethod {
// 定义一个本地方法 实现是在dll文件中实现
private native void doSome0(long input);
}
第二步:
build整个工程,IDEA中右键NativeMethod文件进入所在位置通过地址栏运行cmd。如下图可以看到NativeMethond.class在D:\LXT\project\java\out\production\java\com\company目录下,然后执行cd ..命令两次,到D:\LXT\project\java\out\production\java,即进入根包目录的上层目录即可。
执行javah命令
javah -classpath . -jni com.company.NativeMethod
在当前目录下就会生成名为com_company_NativeMethod.h的头文件。在公司中基本流程是其他同事给你方法名,入参,然后自己按照上面的步骤生成头文件给同事让他们实现,完事之后给你dll文件。
第三步:
在NativeMethod类中添加公外部调用的方法和加载dll文件:
package com.company;
public class NativeMethod {
// 定义一个本地方法 实现是在dll文件中实现
private native long doSome0(long input);
// 定义一个供外部调用的方法
public long doSome(long input){
return doSome0(input);
}
static {
// 加载实现了native函数的动态库,只需要写dll文件的名字
System.loadLibrary("NativeMethod");
}
}
第四步:
调用即可
NativeMethod a = new NativeMethod();
long result = a.doSome(111l);