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

首先建立要使用的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

你可能感兴趣的:(java,jdk,jni,Class,mfc,dll)