Java-COM-взаимодействие: реализовать интерфейс COM в Java - PullRequest
0 голосов
/ 23 мая 2010

Как я могу реализовать vtable COM-интерфейс в Java?

В старые времена я использовал JVM от Microsft, которая была встроена в java-COM-взаимодействие. Что эквивалентно современному JRE?

Ответы на аналогичный ТАК вопрос предложенный JACOB. Я посмотрел на JACOB, но он основан на IDispatch и нацелен на управление анализаторами автоматизации. COM-интерфейсы, которые мне нужны, являются настраиваемыми vtable (расширение IUnknown), например, IPersistStream, IOleWindow, IContextMenu и т. Д.

Для моего случая использования я мог бы реализовать все особенности COM в JNI, и чтобы уровень JNI вызывал соответствующие интерфейсы в Java. Но я надеюсь на менее болезненное решение.

Это для проекта с открытым исходным кодом, поэтому предпочтительны альтернативы с открытым исходным кодом.

РЕДАКТИРОВАТЬ: Com4j выглядит многообещающе. Просматривая доступные документы, он не поддерживает регистрацию IClassFactory, поэтому экземпляры COM-объекта (в java) могут быть созданы не-java-клиентами.

1 Ответ

1 голос
/ 23 мая 2010

Com4J может быть то, что вам нужно.С домашней страницы:

Связывается напрямую с интерфейсом vtable (не IDispatch) для повышения производительности и более широкой поддержки большего количества интерфейсов COM.

...