您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 经营企划 > java调用C或C++动态库
Java程序调用dll动态库的方法1.发现问题现行许多开源库都是用C/C++语言编写的动态库,要在java中调用,需要使用java提供的JNI。在使用JNI时,需要先将动态库中接口函数提取出来通过JAVAH生成.h文件,将.h文件加载到动态库中编译生成新的java动态库,这样java就可以调用该动态库中接口函数。2.开发环境操作系统:Windows7开发语言:java、VC++Java开发环境:Eclipse4.5.1、jdk1.7VC++开发环境:Visualstudio20103.解决方案1、首先新建testComdll.java文件,加入第三方接口,实现接口本地化。图3-1编写的testComdll.java文件2、生成.h文件先将目录切换到testComdll.java文件处,在控制台执行javactestComdll.java和javahtestComdll生成java的.h文件testComdll.h图3-2生成.h文件3、用VC生成动态库打开VC2010建立一个空的dll工程,把testComdll.h和JNI接口相关的jni.h、jin_md.h文件加入到工程当中,在testdll.cpp文件中写入接口实现函数,如下图:图3-3dll动态库接口实现函数4、运行java程序将VC生成的动态库testdll.dll,放入jre的安装目录,我这边的安装目录是:D:\Java\jre7\bin。放入改目录后,在控制台中运行javatestComdll,看到打印出10,说明接口函数调用成功。图3-4运行testComdll.java程序4.总结在开源编程中Java调用C/C++语言接口,不可避免的需要用到JNI调用dll。需要先用javah命令将java中的代用程序生成.h文件,之后在编译dll动态库的时候,需要加入javah命令生成的*.h文件和JNI头文件jni.h和jni_md.h文件,生成新的dll动态库。将dll动态库程序放入JRE包的bin文件下,就可以实现java直接调用C语言接口。
本文标题:java调用C或C++动态库
链接地址:https://www.777doc.com/doc-2881585 .html