Java代码:
public class TestJNI {
public native void hello();
static {
System.setProperty("java.library.path","."); // .代表当前class文件所在的目录
System.loadLibrary("test"); //这个 test 就是生成的dll文件的名字
}
public static void main(String[] args) {
new TestJNI().hello();
}
}
然后通过 javac 编译 得到字节码(class)文件,再经过javah -jni Testjni 得到 头文件Testjni.h;并记住 头文件中的这个名字(Java_TestJNI_hello)。
然后在Devc++中创建DLL项目
并将 Testjni.h 和 %JAVA_HOME%\include 目录下的 jni.h 、%JAVA_HOME%\include\win32 目录下的 jni_md.h 和 jawt_md.h 加入到 DLL项目 中,并修改 ddlmain.c 中的代码添加如下代码:
JNIEXPORT void JNICALL Java_TestJNI_hello( JNIEnv *env, jobject thiz){
printf("HELLO WORLD...\n");
return;
}
修改生成的.dll文件的文件名与 System.loadLibrary("test") 一致;
最后将 TestJNI.class 和 TestJNI.java 拷贝到与 dllhelloworld.dl 和 Testjni.h 同一目录下,然后运行 java Testjni 得到输出结果;