jni学习、jni简介和helloworld示例

jni学习、jni简介和helloworld示例

ID:34723918

大小:319.66 KB

页数:8页

时间:2019-03-10

jni学习、jni简介和helloworld示例_第1页
jni学习、jni简介和helloworld示例_第2页
jni学习、jni简介和helloworld示例_第3页
jni学习、jni简介和helloworld示例_第4页
jni学习、jni简介和helloworld示例_第5页
资源描述:

《jni学习、jni简介和helloworld示例》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、JNI学习(一)、JNI简介和HelloWorld示例参考:java核心技术  传智播客视频 sun官方JNI部分:http://docs.oracle.com/javase/1.5.0/docs/guide/jni/spec/functions.html#wp23124在Java中,有时候我们不得不要去使用其他语言的代码,比如说:1、你的应用需要访问系统的各个特性和设备,这些特性和设备通过java平台是无法访问的。2、你已经有了大量的测试过和调试过的用另一种语言编写的代码,并且知道如何将其导出到所有的目标平台上。3、通过基础测试,你已经发现所编写的Java代码比用其他语言编

2、写的等价代码要慢得多。Java平台有一个用于和本地C代码进行互操作的API,称为Java本地接口(JNI)。现在就开始学习JNI,先从这篇的一个最简单的例子,了解如何使用JNI调用本地方法。调用本地方法,打印出HelloWorld的步骤示例1、在类中声明一个本地方法[java]viewplaincopy1.package com.tao.test;  2.  3.public class NativeTest {  4.    public static native void sayHello();  5.}  我们使用native关键字,声明了一个本地方法,而且我们还将他

3、声明为static。本地方法可以是静态的,也可以不声明为静态的。2、编译.java文件,生成含有该本地方法的类的字节码如果是在eclipse中,进入<工程目录>bincomtaotest,就可以找到eclipse自动为我们编译的.class文件。如果不是,则进入进入NativeTest.java文件所在的目录,使用javac命令编译该java类,生成了NativeTest.class字节码。3、使用javah命令编译.class字节码,生成包含native方法声明的C/C++头文件如果是在eclipse中,进入<工程目录>bin目录,然后使用下面的编译命令(如果不是

4、eclipse,则根据上面编译生成的.class文件的位置来用javap编译)[java]viewplaincopy1.javah com.tao.test.NativeTest   //记住要使用类型的全限定名称  就会在bin目录下,生成我们需要的CC++头文件  com_tao_test_NativeTest.h(头文件的名字带包名,且用_分隔),里面内容如下:[java]viewplaincopy1./* DO NOT EDIT THIS FILE - it is machine generated */  2.#include   3./* Head

5、er for class com_tao_test_NativeTest */  4.  5.#ifndef _Included_com_tao_test_NativeTest  6.#define _Included_com_tao_test_NativeTest  7.#ifdef __cplusplus  8.extern "C" {  9.#endif  10./* 11. * Class:     com_tao_test_NativeTest 12. * Method:    sayHello 13. * Signature: ()V 14. */  15.JNI

6、EXPORT void JNICALL Java_com_tao_test_NativeTest_sayHello  1.  (JNIEnv *, jobject);  2.  3.#ifdef __cplusplus  4.}  5.#endif  6.#endif  4、按照生成的C/C++头文件来写C/C++源文件,并编译为DLL动态链接库我们之前得到了包含native方法声明的C/C++头文件,现在我们按照这个头文件,编写我们的CC++源文件,并编译为DLL动态链接库。上一步,我们得到了com_tao_test_NativeTest.h头文件。①、首先。新建一个Wi

7、n32DLL项目(我使用的是VS2005开发环境,VC6.0++是新建一个Win32Dynamic-LinkLibrary)   新建——>项目——>VisualC++——>Win32——>控制台应用程序——>输入项目名称,我使用为NativeCall点击确定后,进入下面的界面点击下一步,进入下一界面,勾选为DLL和空项目。这样就建立了一个Win32DLL项目了。②、添加com_tao_test_NativeTest.h头文件将com_tao_test_NativeTest.h头文件复制,黏贴到Nati

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

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

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