JavaJNI调用的完全手册

JavaJNI调用的完全手册

ID:36537762

大小:410.50 KB

页数:92页

时间:2019-05-11

JavaJNI调用的完全手册_第1页
JavaJNI调用的完全手册_第2页
JavaJNI调用的完全手册_第3页
JavaJNI调用的完全手册_第4页
JavaJNI调用的完全手册_第5页
资源描述:

《JavaJNI调用的完全手册》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、Java:JNI调用资料整理WSY2008-11-5更新JNI调用的注意事项2JNI系统一些细节点总结3Java和C之间互相传递字符串7Java和C互操作的异常问题处理9Java与CC++之间通过JNI传递中文字符串9Java:JNI完全手册17JNI使用技巧点滴(二)23JNI部分24Tomcat+jsp+javaBean的例子26JNI调用固有方法30Java基础知识——JNI入门介绍(下)32Java调用本地方法(JNI浅谈)38使用JNI的步骤44JAVA与C++::关于JNI中文字符串操作

2、问题总结47Windows平台上实现Java本地方法实用的示例、步骤和准则51例解VC++6.0实现JNI58JNI中文处理问题小结63jni的中文字符串处理72JNI中jstring类型与c语言中的字符串的转换74jstring和char*之间的转换方法76用Delphi开发JNI(JavaNativeInterface)应用(一)77java通过JNI与delphi交互80使用JNI技术实现JAVA程序调用dll83HP-UX下使用JNI访问标准C++程序89Java:JNI调用资料整理WSY20

3、08-11-5更新JNI调用的注意事项JNI的简单教程网上很多,看看就能够明白,照着操作也基本能够做下来。但是因为大多的教程写的都不够详细,在照着操作时候可能会遇到几个小问题,故开篇时在这里简单总结一下。1.在C语言环境中编译代码,出现编译错误,类型为找不到jni.h文件。解决方法:在jdk中寻找到jni.h和jni_md.h文件,将这两个文件拷贝到C语言编译器的include目录中。具体的目录可能会跟编译器有关。比如DevC++中,将其直接拷贝到include目录下即可。2.在C语言环境中编译代码,

4、出现编译错误,类型为参数错误。解决方法:不能简单的把生成的.h文件中的方法名直接拷贝到.c文件中去,需要加入具体的参数。例如JNIEXPORTvoidJNICALLJava_testdll(JNIEnv*,jclass,jint)应该更改为JNIEXPORTvoidJNICALLJava_testdll(JNIEnv*para1,jclass,jintpara2)。3.在Java中调用JNI时候,java.lang.UnsatisfiedLinkError错误发生。解决方法:生成的dll文件放错了位置

5、,所以不能加载dll文件。试试将dll文件放在与class文件同一目录,再试试放在package的根目录。1、建的dll工程里一定要是.c文件。2、一定要是release编译的dll文件,不要用debug生成的。3、javah时使用完整包名.类名(重要!!!)编译举例:调用JNI的Java源文件FpMatch.java。packagecom.until.tc;publicclassFpMatch{publicstaticnativeintFpMatch_TESO(StringszReg,Strings

6、zVer,intnLevel);publicFpMatch(){}/*载入动态库*/static{try{System.loadLibrary("FpMatch_TESO_JNI");}catch(Exceptione){e.printStackTrace();}}}编译说明:javac-d./FpMatch.java-d./参数会在当前目录下,依次建立package指定的目录,并把FpMatch.class放在packageJava:JNI调用资料整理WSY2008-11-5更新指定路径下,为下一步

7、的javah做准备。javah-d./com.until.tc.FpMatch增加-d参数才可以生成正确的.h文件。这样JNI调用函数名里才包括了package的路径。JNI系统一些细节点总结一.系统环境2二.JNI的简要使用例子2三.JNI调用中考虑的问题3四.JNI中对JAVA传入数据的处理5五.JAVA调用本地接口后的数据处理问题5六.JAVA中的一些小东西5一.系统环境linux操作系统kernel2.4.2,安装j2sdk1.4.0二.JNI的简要使用例子下面是一个简单的例子实现打印一句话的

8、功能,但是用的c的printf最终实现。一般提供给java的jni接口包括一个so文件(封装了c函数的实现)和一个java文件(需要调用path的类)。1.JNI的目的是使java方法中能够调用c实现的一些函数,比如以下的java类,就需要调用一个本地函数testjni(一般声明为privatenative类型),首先需要创建文件weiqiong.java,内容如下:classweiqiong{static{System.loadLibrary("tes

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。