六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 68|回复: 0

JNI调用的注意事项

[复制链接]

升级  98.8%

328

主题

328

主题

328

主题

进士

Rank: 4

积分
994
 楼主| 发表于 2013-2-3 14:39:43 | 显示全部楼层 |阅读模式
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的根目录。
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表