Как выставить Java через COM / native DLL? - PullRequest
1 голос
/ 20 октября 2011

Я хочу разработать Java-приложение, которое предоставляет свою функциональность через COM, поскольку устаревшее приложение VB должно взаимодействовать с ним.

Существует несколько библиотек, которые могут потреблять COM компонентов;но поддерживают ли некоторые из них одновременно , выставляя COM?

Я также думал о создании прокси, написанного на C #, который затем связывался бы с Java-App через protobuf.

Есть идеи?

Ответы [ 3 ]

2 голосов
/ 20 октября 2011

Java на платформах Windows поставляется с упаковщиком ActiveX . Используя этот упаковщик, вы можете опубликовать свой JavaBeans как COM-объект. Увы, упаковщик предназначен для Visual JavaBeans (то есть компонентов пользовательского интерфейса, представленных как виджеты), я не уверен, насколько хорошо он работает с невизуальными компонентами.

1 голос
/ 20 октября 2011

Вы всегда можете сделать это через JNI с C / C ++. Просто запустите JVM с него.

Еще один вариант - вы можете использовать чистый C для создания .dll и вызывать его напрямую из VB. Здесь вы можете сделать это через JNI или использовать GCJ для создания нативной библиотеки из кода Java.

Или вы можете предоставить Java-приложение в качестве веб-сервиса или аналогичного.

1 голос
/ 20 октября 2011

Если это автономное приложение или серверный процесс даже с protobuf , вам понадобится способ связи с кодом Java.Задумывались ли вы о написании Java, необходимого для предоставления конечной точки HTTP?Вы могли бы предоставить API таким образом, чтобы VB обращался к Java напрямую, а не через прокси.Это я и сделал.

Если Java - это просто библиотека, я бы посоветовал обратиться к Managed C ++.Вы можете сделать вызовы JNI в Java.Вы можете создать COM-объект в C ++, а затем использовать JNI для отображения на Java для реальной работы.Этого я не сделал ... но вы просили идеи!

...