JAVA下JNI编程教程

JAVA下JNI编程教程

ID:46881296

大小:594.96 KB

页数:27页

时间:2019-11-28

JAVA下JNI编程教程_第1页
JAVA下JNI编程教程_第2页
JAVA下JNI编程教程_第3页
JAVA下JNI编程教程_第4页
JAVA下JNI编程教程_第5页
资源描述:

《JAVA下JNI编程教程》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、java/android下JNI编程教程课程大纲:1、javajni简介2、windows下javaJNI编程技巧——JAVA调用c/c++(0)3、windows下javaJNI编程技巧——JAVA调用c/c++(1)4、windows下javaJNI编程技巧——JAVA调用c/c++(2)5、windows下javaJNI编程技巧——JAVA调用c/c++(3)6、windows下javaJNI编程技巧——JAVA调用c/c++(4)7、从C/C++程序调用Java代码【教程一】JAVAJNI简介:Java本机接口(JavaNativeInt

2、erface(JNI))是一个本机编程接口,它是Java软件开发工具箱(JavaSoftwareDevelopmentKit(SDK))的一部分,JNI它提供了若干的API,实现了和Java和其他语言的通信(主要是C&C++)。JNI允许Java代码使用以其它语言(譬如C和C++)编写的代码和代码库。InvocationAPI(JNI的一部分)可以用来将Java虚拟机(JVM)嵌入到本机应用程序中,从而允许程序员从本机代码内部调用Java代码。也许不少人觉得Java已经足够强大,为什么要需要JNI这种东西呢?我们知道Java是一种平台无关性的语言

3、,平台对于上层的java代码来说是透明的,所以在多数时间我们是不需要JNI的,但是假如你遇到了如下的三种情况之一呢?1.你的Java代码,需要得到一个文件的属性。但是你找遍了JDK帮助文档也找不到相关的API。2.在本地还有一个别的系统,不过他不是Java语言实现的,这个时候你的老板要求你把两套系统整合到一起。3.你的Java代码中需要用到某种算法,不过算法是用C实现并封装在动态链接库文件(DLL)当中的。对于上述的三种情况,如果没有JNI的话,那就会变得异常棘手了。就算找到解决方案了,也是费时费力。其实说到底还是会增加开发和维护的成本。二、环境

4、需求JNI最常见的两个应用:从Java程序调用C/C++,以及从C/C++程序调用Java代码1、需要下列工具与组件:javac.exe:Java编译器:随SDK(Java2SDK及以上)一起提供的。java.exe:Java虚拟机(JVM):随SDK一起提供的。javah.exe:本机方法C文件生成器:随SDK一起提供的。2、定义JNI的库文件和本机头文件:jni.h(C头文件)、jvm.lib和jvm.dll(window下)或libjvm.so文件(linux下),这些文件都是随SDK一起提供的。3、能够创建共享库的C和C++编译器。最常见

5、的两个C编译器是用于Windows的VisualC++和用于基于UNIX系统的gcc/cc。因此,后面我们将会介绍在两种环境下的JNI编程例子。【教程二】windows下javaJNI编程技巧——JAVA调用c/c++(0)一、使用情况当无法用Java语言编写整个应用程序时,JNI允许您使用本机代码。在下列典型情况下,您可能决定使用本机代码:1、希望用更低级、更快的编程语言去实现对时间有严格要求的代码。2、希望从Java程序访问旧代码或代码库。3、需要标准Java类库中不支持的依赖于平台的特性。二、所需软件eclipse3.4.1、JDK6、VC

6、6.0三、步骤分析从Java程序调用C或C++代码的过程由六个步骤组成:我们将在下面几页中深入讨论每个步骤,但还是先让我们迅速地浏览一下它们:1、编写Java代码。我们将从编写Java类开始,这些类执行三个任务:1)声明将要调用的本机方法;2)装入包含本机代码的共享库;3)然后调用该本机方法。2、编译Java代码。在使用Java类之前,必须成功地将它们编译成字节码。3、创建C/C++头文件。C/C++头文件将声明想要调用的本机函数说明。然后,这个头文件与C/C++函数实现(请参阅步骤4)一起来创建共享库(请参阅步骤5)。4、编写C/C++代码。这

7、一步实现C或C++源代码文件中的函数。C/C++源文件必须包含步骤3中创建的头文件。5、创建共享库文件。从步骤4中创建的C源代码文件来创建共享库文件。6、运行Java程序。运行该代码,并查看它是否有用。我们还将讨论一些用于解决常见错误的技巧。【教程三】windows下javaJNI编程技巧——JAVA调用c/c++(1)步骤1:编写Java代码我们从编写Java源代码文件开始,它将声明本机方法(或方法),装入包含本机代码的共享库,然后实际调用本机方法。这里是名为JNI_javaCallc_test:直接使用文本编辑器或在ecilpos中建立工程敲

8、入以下代码:[cpp]viewplaincopy1.packagetest;2.3.publicclassJNI_javaCallc_t

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

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

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