您的位置:首页 > 编程语言 > C语言/C++

Java中如何调用C/C++代码

2014-06-14 22:10 267 查看
以下参考论文:“Java语言如何调用C++语言编写的本地方法”一文。可从CSDN中下载该文章,如下图所示:



方法步骤如下:

1.编写声明本地方法的Java类文件。在该类文件中,要声明本地方法,并加载本地方法的动态连接库的类文件。

例如MaxMin.java,代码如下:



2.生成该Java类文件的头文件。利用Java的编译程序命令javac和javah,对上述的MaxMin.java文件经过如下处理,即可生成相应的头文件MaxMin.h。

①编译该类文件:\jdk\bin\javac MaxMin.java;

②生成该类的头文件: \jdk\bin\javah MaxMin。

MaxMin.h内容如下图:



3.利用C++语言编写本地方法的代码文件在编写本地方法的代码时,要按照上述Java自动生成的函数声明体编写C++代码。对应的代码文件MaxMinC.c的内容如下:



4.创建本地方法的动态连接库(DLL)利用Visual Studio 2010创建动态连接库:MaxMin.dll。

可参考VS2010中创建DLL图解一文,http://www.360doc.com/content/12/0215/14/8484669_186802727.shtml

过程为:点击“文件”,“新建”-》Win32-》输入项目名“MaxMin"->DLL即可。

然后:将自己刚创建的“MaxMin.h"加入头文件,将”MaxMin.c"加入源文件中。如下图示:



注意:需将JDK中的include/jni.h, include/win32/jawt_md.h和include/win32/jni_md.h 3个头文件加入到VS2010安装目录的VC/include目录下。

然后点击:“生成”-》“生成MaxMin"即可在Debug目录下找到MaxMin.dll文件。

5.编写Java运行类文件,调用本地方法编写Java测试类文件MaxMinTest.java,调用动态连接库中的C++方法,代码如下:



6.编译MainMaxTest.java文件,并运行java MainMaxTest得到结果:





注意:需将MaxMin.dll和MainMaxTest.java放在同一目录下,否则找不到动态链接库。同时,需保证jdk版本和C++的dll链接库版本一致,如都是32位或64位,否则出现如下错误.

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: