一、jcom简介
为了解决这一矛盾,sun率先提出了jni解决方案。jni,即java本机接口,是编写java本机方法与把java虚拟机嵌入到本机应用程序中的标准编程接口。java本机接口的主要目的就是保证本机方法库在不同平台上的java虚拟机中的二进制兼容性。使用jni编写程序,就可以很方便地做到程序的跨平台可移植。尽管如此,sun提供的jni解决方案只是底层的api包装,在实际开发中用到大量java/com互操作时,直接从jni级进行开发显然效率并不高。 【相关文章:面对微软web应用 Google采用迂回】
据gartner的研究分析,在名列全球前1000名的企业中,大约90%都混合应用了java与windows技术。然而,java技术与微软技术分别提供了丰富但却迥然不同的解决方案,或至少说这两种方案之间的差异是巨大的。 【扩展阅读:光华小工具帮你解决安全大问题】
jcom,即java/com桥,它是一种用软件实现的桥接机制,可以帮助java应用程序快速访问微软的com/dcom组件。而且,微软的com应用程序也可以通过这个机制访问基于java的对象。jcom不仅具有实现相对简单的特点,而且其最吸人的部分在于它的透明性。对java程序员来说,com对象看起来与其他java对象没有什么不同。而对com开发人员来说,远程java对象看起来就象是本机com组件。在这些对象中可以找到jcom运行时刻引擎进行动态类型映射,因此从表面上屏蔽了数据类型间的差异。远程对象的数据类型被动态地转换成调用程序所使用的基元类型。对java开发人员来说,com数据类型表现得就象java基元类型;而对com开发人员来说,java数据类型看起来就象是com数据类型。 【扩展信息:思科第一季度净利润16.1亿美元】
为此,大大小小的公司甚至个人都试图提供全部或局部的java/com互操作解决方案。例如,weblogic提供的jcom技术,bridge2java(ibm提供的基于java本机接口与com技术,允许把activex对象容易地集成到java环境中),jacozoom(是一个java类库—它允许你在java程序中使用activex控件与activex服务器,基于java本机接口与com技术,允许使用于windows平台上的任何java环境中),j-integra for com(http://j-integra.intrinsyc.com/),还有一个小型的jcom桥接库(http://sourceforge.net/projects/jcom/,它也支持从java中调用com对象,例如excel工作簿,vb的com对象等)。其中,weblogic提供的jcom技术为微软的com对象与java对象提供一个稳定、无缝的机制,让这两种对象可以协同工作。
本文将重点讨论bea的java/com解决方案。
二、jcom工作原理
... 下一页