JNI的简单教程网上很多,看看就能够明白,照着操作也基本能够做下来。但是因为大多的教程写的都不够详细,所以在照着操作时候可能会遇到几个小问题,在这里简单总结一下。
1.在C语言环境中编译代码,出现编译
错误,类型为找不到jni.h文件。<br>
解决方法:在jdk中寻找到jni.h和jni_md.h文件,将这两个文件拷贝到C语言编译器的include目录中。具体的目录可能会跟编译器有关。比如Dev C++中,将其直接拷贝到include目录下即可。
2.在C语言环境中编译代码,出现编译错误,类型为参数错误。<br>解决方法:不能简单的把生成的.h文件中的方法名直接拷贝到.c文件中去,需要加入具体的参数。例如JNIEXPORT void JNICALL Java_testdll (JNIEnv *, jclass, jint)应该更改为JNIEXPORT void JNICALL Java_testdll (JNIEnv * para1, jclass, jint para2)。
3.在Java中调用JNI时候,java.lang.UnsatisfiedLinkError错误发生。<br>解决方法:生成的dll文件放错了位置,所以不能加载dll文件。试试将dll文件放在与class文件同一目录,再试试放在package的根目录。