首先建立要使用的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/include和jdk1.6.0_02/include/win32下面
8. 好了我们生成dll文件将其放到刚才编译的java类下执行javacall
9. 输出结果是5 。