Java Native Interface

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应用程序和本地应用程序粘在了一起

 待续 。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值