java 与com 相互调用的方法比较

原创 2012年03月29日 16:40:08

  在使用java 与com 相互调用的方法中采用jacob的方法,比jcom要好用的得多
  如下是C++ Com 组件的定义文档 IDL
  Xml代码
         
  JCOM 的调用方式:
  Java代码

  Jacob调用方式:
  Java代码

  对于传入类型的支持,对于jcom,由于文档是日文的看的不是很懂,而且,在传入的参数列表中,不能有Long类型,有的话,就被认为是jobject,这很郁闷,还有在参数中同时有short ,string,double 莫名的出错。而且调用的时候必须得传参数对象数组。
  而jacob,传入的类型,就没有限制了,甚至接口用的是short 我传long类型的也没有报错,当然,我还没有看超出精度范围的时候是否报错,而且传参的时候,可以用dis.call(dis, "e",1111);看API有若干个这样的重载函数,比较方便。
  jCOM是一种Java/COM互操作系统的简称,即Java/COM桥,它是一种用软件实现的桥接机制,可以帮助Java应用程序快速访问微软的COM/DCOM组件。而且,微软的COM应用程序也可以通过这个机制访问基于Java的对象。jCOM不仅具有实现相对简单的特点,而且其最吸人的部分在于它的透明性。对Java程序员来说,COM对象看起来与其他Java对象没有什么不同。而对COM开发人员来说,远程Java对象看起来就象是本机COM组件。在这些对象中可以找到jCOM运行时刻引擎进行动态类型映射,因此从表面上屏蔽了数据类型间的差异。远程对象的数据类型被动态地转换成调用程序所使用的基元类型。对Java开发人员来说,COM数据类型表现得就象Java基元类型;而对COM开发人员来说,Java数据类型看起来就象是COM数据类型。
  jCOM声称以双向方式工作,实际只是允许在Java和COM组件之间,在任意一个方向上通信-Java对象可以调用COM组件,COM组件又可以调用Java对象。当然,在这两种不同的分布式组件框架之间,有着两种截然不同的底层体系结构负责线路级通信。在运行时,jCOM内部设置了一个双协议栈环境,实现对底层两个彼此独立的基础结构的支持(参考图1)。对于COM组件,有一个在DCE远程过程调用之上的COM/DCOM实现。对于Java对象,有一个在Java远程方法IIOP(Internet Inter-ORB)之上的远程方法调用(RMI)实现。调用要通过这些协议栈,并通过内部的协议转换进行处理,内部的协议转换能够有效地屏蔽掉低一级的协议。对于EJB来说,来自COM客户的调用看起来就好像是来自Java客户的调用。对于COM组件来说,来自Java客户的调用看起来就好象是来自一个普通的COM客户。
  jCOM提供了能够自动生成更高级别COM/DCOM代理以及RMI存根的工具。客户程序用COM/DCOM代理以及RMI存根在这两个不同的基础结构间封装并传送调用。jCOM可以设置成本机模式,这样就可以利用本机操作系统的动态链接库,从而减轻DCOM的网络负荷,并极大地提高系统性能。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

java通过jacob实现对com组件的调用

项目中涉及到与第三方系统对接,我们项目是java的,对方项目提供的接口是c#的,根据网上的一些信息我们可以知道java调用com组件有一套解决方案那就是jni,另外还有一个开源的jar包,对jni的封...

jacob学习一:向word中添加一个字符串

最近发现许多操作都是需要调用windows的COM组件,虽然java有JNI,但是似乎并不好用,后来发现有个jacob,底层虽然也是使用JNI,但是直接使用jacob,好了很多,,下面是一个简单的de...

Java调用COM组件 JACOB

JACORB介绍: JACOB is a JAVA-COM Bridge that allows you to call COM Automation components from Java....

java调用com组件操作word使用总结(jacob)

ava调用com组件操作word使用总结(jacob) 简单描述     在此处输入简单摘要 特别声明:使用java-com技术可以完成任何VBA可以完成的office文档操作;  一、准备工...

java 调用windows的COM组件举例(使用JACOB)

最近公司需要做一个效果,开发一个程序能在程序运行时打开microsoft office的相关软件,实时写入,然后能关闭,你能看到数据写入的效果。如下图:发现用java写程序的话需要通过JACOB来调用...

java调用com组件方法

对照vb代码实现java调用com组件方法 2009-03-02 14:39 1.简介  java调用com组件方法,最简单的方法莫过于使用JACOB控件。 JACOB就是 JAV...
  • hjpcb
  • hjpcb
  • 2013-11-11 14:57
  • 370

JACob实现java与com组件的相互操作

软件的互操作性是一个我们经常面临的问题,如果 Java 可以自由的调用其他语言和平台的成熟代码,可以充分利用您的 Java 技能,大大提高您的生产力。现有的 Java COM 互操作技术有很多种实...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)