问题描述
- Java怎么调用c/c++写的库
-
接口供应商给我们发来aa.h , aa.dll 文件 还有一个api文档。向各位大神求救,搞了一天都不懂,真心痛苦
解决方案
java通过jni可以调用C++写的dll
http://www.cnblogs.com/xiehy/p/3365682.html
解决方案二:
http://blog.csdn.net/cskerrydn/article/details/4719521
解决方案三:
你都有API文档了,就是你JNI的时候设置好对应的DLL名称,函数名称,参数信息等,注意Java跟C++的类型之间的对应
解决方案四:
你是用eclipse吧,给你个完整的,
eclipse 配置jni工具:->ExternTool->javah.exe路径 C:Program Files (x86)Javajdk1.8.0_40injavah.exe
->当前目录: ${project_loc} ->参数:-v -classpath "${project_loc}/bin" -d "${project_loc}/jni" -jni ${java_type_name}
例子:
/*java调用C++动态库,例子/
public class HelloWorld {
public static void main(String []args)
{
LoadDll.displayHelloWorld(); //调用
}
}
/*生成JNI文件的类,名字随意*/
public class LoadDll {
public native static void displayHelloWorld();//库函数
static{
System.loadLibrary("LoadDll"); //库名字
}
}
VC: jni.h和C:Program Files (x86)Javajdk1.8.0_40includewin32的jawt_md.h、jni_md.h移动到VC程序的 C:Program Files (x86)Microsoft Visual Studio 9.0VCinclude
DLL的位数要和JDK位数一致
编译生成DLL,移到java的bin目录
解决方案五:
java调用C/C++写的dll
如何在C/C++中调用Java
java调用c/c++代码