Java调用c/c++动态链接库

15 篇文章 0 订阅

首先建立要使用的java文件

示例:

1.       首先我们建立要在程序中使用的java类,类中有我们使用的方法由于要使用c/c++的动态链接库我们在写方法是加入native关键字,我们使用java jni进行动态链接。

2.       编写如下类类中含有max方法在实际开发中使用业务方法。

public class javacall

{

  private native static int Max(int a,int b);  

  public static void main(String[] args)

  {

    System.out.println(Max(4,5));

  } 

  static

  {

    System.loadLibrary("VCdll");

  }

}

3.       javac进行javacall编译生成class文件命令如下

Javac javacall.java

4.       我们要使用的是javacall.h文件怎么办继续命令

Javah javacall

生成javacall.h文件

5.       建立c++dll文件打开vc++6.0新建mfc appwizard dll

输入VCdll工程名这个无所谓倒是生成后可以改名和上面java中的一样System.loadLibrary("VCdll");

6.       在生成的编写文件中加入 #include "javacall.h" 将上面生成的javacall.h文件放入dll工程下面在程序中加入如下代码

JNIEXPORT jint JNICALL Java_javacall_Max

  (JNIEnv * a, jclass b, jint x, jint y)

{

         return x > y ? x : y;

}

Jint时返回类型在c/c++java的类型都加上一个j其次javacall是类名max是方法名你还可以继续添加方法都一个样。

7.       可以了吗没有加入jni.h文件和jni_md.h到vc的工程下分别在jdk1.6.0_02/includejdk1.6.0_02/include/win32下面

8.       好了我们生成dll文件将其放到刚才编译的java类下执行javacall

9.       输出结果是5

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值