2010-05-22 78 views
0

如何在java中实现一个vtable COM接口?java-COM interop:在Java中实现COM接口

在过去,我会使用内置在java-COM interop中的Microsft JVM。现代JRE的等价物是什么?

答案类似SO question建议JACOB。我已经看过JACOB,但它基于IDispatch,旨在控制自动化服务器。我需要的COM接口是自定义的vtable(扩展IUnknown),例如IPersistStream,IOleWindow,IContextMenu等。

对于我的用例,我可以在JNI中实现所有的COM细节,并让JNI层调用java中相应的接口。但我希望有一个不那么痛苦的解决方案。

这是一个开源项目,所以开源替代品是首选。

编辑:Com4j看起来很有前途。仔细查看可用的文档,它似乎并不支持注册IClassFactory,因此COM对象(在Java中)可以由非Java客户端实例化。

回答

1

Com4J可能是你需要的。从主页:

直接绑定到虚表接口 (未IDispatch接口),用于改善 性能和 更COM接口的广泛支持。

+0

感谢您的支持。这就是我一直在寻找的东西。我浏览过文档,它看起来很棒 - 只是缺少一件事 - 它似乎不支持提供IClassFactory,所以COM对象(用java实现)可以通过COM实例化。 – mdma 2010-05-23 04:06:04