2010-05-22 76 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