- 1、本文档共27页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)一起来创建
您可能关注的文档
最近下载
- 呼吸内科护理常规.pdf
- 非ST段抬高型急性冠脉综合征诊断和治疗指南(2024)解读.pptx VIP
- 宁02J9 室外工程(建筑图集).docx
- 医疗护理技术操作规程.pptx
- 2024年生态环境部核与辐射安全中心招聘编制内人员历年高频考题难、易错点模拟试题(共500题)附带答案详解.docx
- 驾校训练场建设工程投标方案(技术标).pdf
- 2024-2025学年统编版(2024)小学道德与法治一年级上册(全册)教案及反思(完整版p138).docx VIP
- 网课章节答案《尊重学术道德 ,遵守学术规范》超星尔雅答案2023.pdf
- 科创KC510系列变频器使用说明书.pdf
- 初中英语必背的100个英语语法公式.pdf VIP
文档评论(0)