欢迎使用CSDN-markdown编辑器
来源:互联网 发布:西安中国银行软件中心 编辑:程序博客网 时间:2024/06/09 07:14
Java调用DLL的方式之一:JNI(Java Native Interface)是Java语言本身提供的调用本地已编译的函数库的方法,本身具有跨平台性,可以在不同的机器上调用不同的本地库, JNI的应用方案是基于Java类和本地函数相映射的。调用步骤如下:1、使用eclipse或者其他工具编写好class部分如下:`package examle.jni.test;public class JavaCallDll {static { System.loadLibrary("DllName"); //加载DLL的名称:DllName.dll } public native String[] Test1(int a, String b);public native String[] Test2(int[] a, int[] b);public static void main(String args[]){}
}`
2、生成.h文件:
如果使用eclipse等工具,它可以帮助你编译生成examle_jni_test_JavaCallDll.class.路径在你的工程文件下$ProjectPath\bin\example\jni\text\JavaCallDll
打开cmd,进入到该文件下:
执行 javah -classpath . example.jni.text.JavaCallDll 命令即可,在bin文件夹下则会生成example_jni_test_JavaCallDll.h
如果是自己手动执行则:第一步:javac example.jni.test.JavaCallDll.java 生成java2cpp.class;第二步:javah -classpath . example.jni.text.JavaCallDll 生成example_jni_test_JavaCallDll.h
生成.h如下:
/* DO NOT EDIT THIS FILE - it is machine generated */#include <jni.h>/* Header for class example_jni_test_JavaCallDll */#ifndef _Included_example_jni_test_JavaCallDll#define _Included_example_jni_test_JavaCallDll#ifdef __cplusplusextern "C" {#endif/* * Class: example_jni_test_JavaCallDll * Method: Test1 * Signature: (ILjava/lang/String;)[Ljava/lang/String; */JNIEXPORT jobjectArray JNICALL Java_example_jni_test_JavaCallDll_Test1 (JNIEnv *, jobject, jint, jstring);/* * Class: example_jni_test_JavaCallDll * Method: Test2 * Signature: ([I[I)[Ljava/lang/String; */JNIEXPORT jobjectArray JNICALL Java_example_jni_test_JavaCallDll_Test2 (JNIEnv *, jobject, jintArray, jintArray);#ifdef __cplusplus}#endif#endif
3、编写C/C++代码实现.h头文件中声明的函数, 实现接口方法,可以在实现方法中调用第三方DLL库注意:复制 %jdk%\include\win32\jni_md.h和%jdk%\include\jni.h 到项目根目录下,复制example_jni_test_JavaCallDll.h到项目根目录,example_jni_test_JavaCallDll.h文件的引用 include 修改成 include "jni.h", 然后工程头文件中引用其以上三个文件。
0 0
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- SVN安装---本机安装(1)
- Android组件——ContentProvider
- iOS开发脚踏实地学习day04-超级猜图
- Permutation Sequence
- 如何查看Eclipse的数字版的版本
- 欢迎使用CSDN-markdown编辑器
- GDI和GDI+的应用场合思考
- 爱与赤诚
- 你知道数据库索引的工作原理吗?
- 将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
- POJ 1844:Sum ”滚动“数组
- 浅谈面向对象第二枪
- Cookie:记录用户最近商品的访问记录
- 1038. 统计同成绩学生(20)