java-COM interop: Implement COM interface in Java

[亡魂溺海] 提交于 2019-12-29 09:39:07

问题


How can I implement a vtable COM interface in java?

In the old days, I'd use the Microsft JVM, which had built in java-COM interop. What's the equivalent for a modern JRE?

Answers to a similar SO question proposed JACOB. I've looked at JACOB, but that is based on IDispatch, and is aimed at controlling Automation serers. The COM interfaces I need are custom vtable (extend IUnknown), e.g. IPersistStream, IOleWindow, IContextMenu etc.

For my use case, I could implement all the COM specifics in JNI, and have the JNI layer call corresponding interfaces in java. But I'm hoping for a less painful solution.

It's for an open source project, so open source alternatives are preferred.

EDIT: Com4j looks promising. Looking through the available docs, it doesn't seem to support registering a IClassFactory so the COM object (in java) can be instantiated by non-java clients.


回答1:


Com4J may be what you need. From the homepage:

Binds directly to the vtable interface (not IDispatch) for improved performance and broader support for more COM interfaces.



来源:https://stackoverflow.com/questions/2889984/java-com-interop-implement-com-interface-in-java

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!