<b>用Jace整合Java和C++</b>[Java编程]
本文“<b>用Jace整合Java和C++</b>[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
择要
Jace是一种免费的开放源代码的工具,它使我们可以轻松地开辟JNI(Java本机接口)代码.本篇文章具体地解析了JNI API的问题,以及若何利用Jace办理这些问题.
假如没有更深的理解,我们一定会认为Sun计划JNI的目的是为了不让Java编程人员利用它.毕竟,范例安全形同虚设,贫乏错误查抄机制,举行一次简单的Java办法调用需求4次或更多的JNI调用,这都是JNI明显的不足之处.别的,我们还必须管理JNIEnv指针,不能在多个线程中利用JNI调用,必须为每种大概的操作在9个函数调用中举行挑选,并且非常信息的获得也非常地艰难.这还只是JNI所呈现问题的一部份,我们还能发现很多其他问题.
这些限制中的很多部份都与JNI与C语言的绑定有关,C语言本身对范例安全、非常处理机制的支持也非常不好.固然目前大大都的编程人员都已经可以利用C++编写代码,但Sun没有放弃C编程人员,这也是JNI目前这种情况的缘由.不幸的是,这种很难利用的API给开辟人员带来了很多艰难.
Jace是一款免费的开放源代码的工具包,旨在使JNI编程变得越发简单.它支持由Java类文件自动生成C++代理类以及C++与Java的非常、数组、包、对象的整合,管理Java引用的线程绑定和生命周期.更为重要的是,它可以使我们开辟更小、更易于理解、在编译时范例安全的模块.
JNI的范例系统
Jace最基本的特点是它利用C++代理类来表达Java范例.为了真正地理解代理类的长处,我们首先需求来看看JNI的范例系统.Sun在JNI中利用了24种C范例来表示全部大概的Java范例.JNI包含有9个简单范例:
·jboolean
·jbyte
·jchar
·jshort
·jint
·jlong
·jdouble
·jfloat
·void
JNI有14种引用范例,以下图所示:
(图:picture01)
别的,JNI有一个复合型的范例jvalue,它可以表达全部的简单和引用范例.
以上是“<b>用Jace整合Java和C++</b>[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |