如果你的那个com组件的接口不是很多的话,我可以个你提供一种思路。先自己用c++或者其他的,写个dll,把你对com组件的交用,用dll的函数封装调用。然后用java的native接口,调用你的这个dll,这样可能比较现实点,直接交用com组件,我估计够呛。

解决方案 »

  1.   

    http://www.hellohiro.com/native.htm
    一篇JNI的小例子,如果写过JNI就不必看了.
      

  2.   

    记得标准的java好像不能直接调用com,原来的vj++可以支持,但也很麻烦。
     zhang21cnboy(事了抚衣去,不留身与名)提供了方法。
      

  3.   

    除了使用JNI,还可以使用CORBA(推荐),
    使用IDL2Java定义接口,java就可以调用,
      

  4.   

    如果是ActiveX这种带有GUI的COM对象,那么Java根本就没有办法将其直接嵌入到图形界面中。如果不是极其特殊的需要,建议根本不要用这种思路去解决问题,因为这个问题很象一个初学者水平提出的,对纯Java熟悉到一定程度之后,是不会这样找解决问题的方法的,因为Java体系和COM/ActiveX体系有着巨大的鸿沟,直接沟通非常的蹩脚。如果你是作为一个老手,而不是一个初学者,很严肃的提出这样的问题,确实需要这样的功能,那么我可以告诉你,不妨用非Java语言编写一个中间程序,这个程序中使用你所说的COM对象,同时这个程序又是一个Socket监听Server,然后,在Java程序中,通过Socket通讯协议按照网络的模式和这个程序进行通讯,进而实现可Java中通过Socket通讯来操纵另一程序中的COM对象。这样就能够达到比较好的效果。
    当然,使用CORBA也能够达到沟通的目的,但是,你的程序的运行却要依赖于特定的ORB服务,这会使程序结构比较复杂,容易出现故障。