1、写出java 文件:
public class JavaCall
{
static
{
System.loadLibrary("calldll");
}
public native static int shanfei(int i);
public static void main(String[] args)
{
JavaCall jc = new JavaCall();
int j;
j = jc.shanfei(4);
System.out.println(j);
}
}
2、对JavaCall进行编译:
javac JavaCall.java
3、生成头文件:(生成一个JavaCall.h)
javah JavaCall
4、建立calldll.dll文件。
打开visual studio 6.0->新建一个空白dll工程->新建一个C文件包含内容如下:
#include "jni.h"
JNIEXPORT jint JNICALL Java_JavaCall_shanfei(JNIEnv * evn, jclass object, jint p)
{
int j = p*p;
return j;
}
用release生成一个calldll.dll库文件。
5、把生成的calldll.dll文件拷到你的JavaCall.class文件的目录下。
6、运行java JavaCall 就OK了。
注意:
1、建的dll工程里一定要是.c文件。
2、一定要是release编译的dll文件,不要用debug生成的。
否则就会出现下面的错误。
Exception in thread "main" java.lang.UnsatisfiedLinkError: shanfei at JavaCall.shanfei(Native Method) at JavaCall.main(JavaCall.java:14)。