《《JAVA下JNI编程教程》.pdf

  1. 1、本文档共27页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《《JAVA下JNI编程教程》.pdf

java/android下JNI编程教程 课程大纲: 1、java jni简介 2、windows下java JNI编程技巧——JAVA调用c/c++(0) 3、windows下java JNI编程技巧——JAVA调用c/c++(1) 4、windows下java JNI编程技巧——JAVA调用c/c++(2) 5、windows下java JNI编程技巧——JAVA调用c/c++(3) 6、windows下java JNI编程技巧——JAVA调用c/c++(4) 7、从 C/C++ 程序调用 Java 代码 【教程一】JAVA JNI简介: Java 本机接口(Java Native Interface (JNI))是一个本机编程接口, 它是 Java 软件开发工具箱(Java SoftwareDevelopment Kit (SDK))的一部 分,JNI它提供了若干的API,实现了和Java和其他语言的通信(主要是CC++)。 JNI允许Java代码使用以其它语言(譬如 C 和 C++)编写的代码和代码库。 Invocation API(JNI的一部分)可以用来将Java虚拟机(JVM)嵌入到本 机应用程序中,从而允许程序员从本机代码内部调用Java 代码。 也许不少人觉得Java已经足够强大,为什么要需要JNI这种东西呢? 我们知道Java是一种平台无关性的语言,平台对于上层的java代码来说是 透明的,所以在多数时间我们是不需要JNI的,但是假如你遇到了如下的三种情 况之一呢? 1. 你的Java代码,需要得到一个文件的属性。但是你找遍了JDK帮助文档也 找不到相关的API。 2. 在本地还有一个别的系统,不过他不是Java语言实现的,这个时候你的 老板要求你把两套系统整合到一起。 3. 你的Java代码中需要用到某种算法,不过算法是用C实现并封装在动态链 接库文件(DLL)当中的。 对于上述的三种情况,如果没有JNI的话,那就会变得异常棘手了。就算找到解 决方案了,也是费时费力。其实说到底还是会增加开发和维护的成本。 二、环境需求 JNI 最常见的两个应用:从Java程序调用C/C++,以及从C/C++程序调用Java代 码 1、需要下列工具与组件: javac.exe: Java 编译器:随 SDK(Java 2 SDK及以上) 一起提供的 。 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++ 编译器。 最常见的两个 C 编译器是用于Windows的Visual C++和用于基于UNIX系统的 gcc/cc。 因此,后面我们将会介绍在两种环境下的JNI编程例子。 【教程二】windows下java JNI编程技巧——JAVA调用c/c++(0) 一、使用情况 当无法用 Java 语言编写整个应用程序时,JNI 允许您使用本机代 码。 在下列典型情况下,您可能决定使用本机代码: 1、希望用更低级、更快的编程语言去实现对时间有严格要求的代码。 2、希望从 Java 程序访问旧代码或代码库。 3、需要标准 Java 类库中不支持的依赖于平台的特性。 二、所需软件 eclipse3.4.1、JDK6、VC6.0 三、步骤分析 从 Java 程序调用 C 或 C ++ 代码的过程由六个步骤组成: 我们将在下面几页中深入讨论每个步骤,但还是先让我们迅速地浏览一下它们: 1、编写 Java 代码。 我们将从编写 Java 类开始,这些类执行三个任务: 1)声明将要调用的本机方法; 2)装入包含本机代码的共享库; 3)然后调用该本机方法。 2、编译 Java 代码。 在使用 Java 类之前,必须成功地将它们编译成字节码。 3、创建 C/C++头文件。 C/C++头文件将声明想要调用的本机函数说明。 然后,这个头文件与 C/C++ 函数实现 (请参阅步骤 4)一起来创建

文档评论(0)

llww + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档