Java调用c程序动态库详细案例

3 篇文章 1 订阅
C语言经久不衰的原因自是有的,其开发人员、已有程序及质量都是值得学习借鉴的,为了不用重复开发,可以用java直接调用c程序是很有必要的

具体实例如下
1.写一个java类
public class test1{

public native int add(int a,int b);      //注意native的添加,add具体实现有c完成

static{
    System.loadLibrary("test1");       //加载c语言动态库,生成方法在下
}

public static void main(String[] args){

    new test1().add(1,2);       //实例化方法
}   

}

2.于当前目录下编译程序,生成class类:
这里写图片描述
3.生成.h文件,注意这里有一些区别:
1)当你安装jdk的时候配置了path及classpath的情况下,直接运行javah test1即可生成;

2)若没有配置,则需运行命令如下:
这里写图片描述
4.下面打开vc生成动态库,新建动态库如下:
这里写图片描述
5.在当前工程下,分别建立.h和.cpp文件
这里写图片描述
6.将之前生成的.h文件所有内容copy当前.h文件下面;且在.cpp文件中实现头文件函数的如下:

#include "test1.h"
#include <jni.h>
JNIEXPORT jint JNICALL Java_test1_add
(JNIEnv *, jobject, jint a, jint b){
 return a+b;
}

7.在jdk的安装目录~\jdk1.6.0_25\include下将jni.h和~\jdk1.6.0_25\include\win32下的jni_md.h文件复制到Visual C++ 6.0的D:\Microsoft Visual Studio\VC98\Include目录下;
8.此时编译程序,即可生成动态链接库,注意在工程下的debug内:
这里写图片描述
9.将此动态库复制到java工程下,调用执行即可完成c函数的功能:
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值