目前有在Java中调用C++中函数的需求,可以通过C++生成动态链接库(DLL)文件,之后在Java中通过加载该DLL来调用函数。记录基本过程如下
- 先在Java中书写native函数,然后编译生成class;
- 使用Java提供的工具
javah
生成header文件:javah -jni path.to.class.file
; - 在C++中引入header文件,实现对应函数,注意需要引入’jni.h’。jni.h和jni_md.h为jdk中的头文件,在
%JDK_HOME%\include
和%JDK_HOME%\include\win32
中; - java中使用这些native函数前,要先将生成的DLL文件放置于项目根目录下,并调用
System.loadLibrary(libName)
,其中libName仅为DLL文件的名字,不包括后缀。调用System.load(libName)
则需要提供全路径。