您的位置:首页 > 编程语言 > Java开发

Java Native Interface

2005-06-21 14:05 267 查看
Java本地接口(JNI)是为java编写本地方法和jvm嵌入本地应用程序的标准的应用程序接口。首要的目标是在给定的平台上通过所有的jvm来实现兼容的二进制编码本地方法库。
    当使用经典的虚拟机时,Java2 SDK支持早期的本地方法接口(Native Method Interface)。 NMI是最初在JDK1.0实现的,NMI并不是java平台标准的一部分。
 
Java Native Interface Tutorial http://java.sun.com/docs/books/tutorial/native1.1/index.html
这个指南告诉你怎么把本地方法集成到你的java程序里面,你将会学会怎样写本地方法,本地方法是一种使用其他语言来实现的方法,比如C.
JNI 概述
JNI是一个本地编程接口,使用JNI务必保证你的代码能够在所有的平台在完全兼容。当某些应用程序不能完全通过java实现的情况下,程序员就可以使用JNI来写本地接口方法来处理这些情况,例如,你可能需要使用这些本地方法和JNI在下面的情况:
·在你的应用程序里面,java类库可能不能支持独立平台的一些特征
·你可能有一些其他语言写好的链接库,并且你希望通过java应用程序来访问这些链接库
·你可能想要通过低级语言来实现一部分效率要求很高的代码,比如汇编,然后通过java应用程序来调用它。
一个本地方法可以创建java对象,包括数组和字符串,然后检查和使用这些对象来执行某些任务。一个本地方法也可以更新由它创建或被传进来的java对象,并且这些被更新的对象对于java程序来说同样有效。因此,无论是本地语言部分还是java语言部分都可以创建、更新和访问java对象,并且在他们之间共享这些变量。
JNI允许你在本地方法中使用java语言。具体的说,你可以在本地方法中catch and throw 异常,并且把异常处理交给java应用程序来处理。本地方法同时也可以获取java类信息。通过调用JNI函数,本地方法可以加载java类和获取类信息。最后,本地方法能使用JNI来执行时时的类型检查。
 下图解释了传统的C语言如何使用JNI连接java库,并调用java方法,使用java类等



 
下图是java应用程序调用本地方法,显示了许多java程序利用JNI的可能性,包括调用C方法,C++类,调用汇编例程等等



很容易看到,JNI像胶水一样把java应用程序和本地应用程序粘在了一起



 待续 。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息