Должен признать, что в последний раз я программировал на Java на уроках структур данных в старшей школе. Так что, пожалуйста, будьте добры к этому Java-новичку.
Я потратил много времени на сборку библиотеки C# COM на работе. Эта библиотека в значительной степени опирается на некоторые новые технологии .Net (WPF - самый большой), поэтому перевод ее на другой язык на самом деле не вариант. Я протестировал использование этой библиотеки из C++ через интерфейс COM, и это было достаточно просто. Я также хотел доказать, что эту же библиотеку можно использовать из Java-программы.
Итак, проблема, с которой я столкнулся, заключается в том, что я не могу найти бесплатный или даже недорогой способ использования COM-объектов из Java. Думаю, другим решением было бы найти способ напрямую интегрировать библиотеку. Есть ли у кого-нибудь какие-либо мнения о том, как лучше всего это сделать? Я использую Eclipse для своей среды Java. Ниже приведен пример того, как выглядит мой код C#. Спасибо за любое направление, которое вы можете предоставить.
//Example C# Object Code
[Serializable,
ComVisibleAttribute(true),
Guid("Long Guid String"),
ClassInterface(ClassInterfaceType.None),
ComSourceInterfaces(typeof(IFooBarStructure)),
ProgID("My Application")]
public class MyFooBarObject
{
public MyFooBarObject(){}
public string DotNetMethod(){ return String.Empty; }
}





Вы можете использовать ДЖЕЙКОБ
С сайта:
JACOB is a JAVA-COM Bridge that allows you to call COM Automation components from Java. It uses JNI to make native calls into the COM and Win32 libraries.
Похоже на то, что вы ищете.
Если вы можете получить доступ к своей библиотеке через C++, вы можете получить доступ к ней через JNI. JNI довольно легко сделать, просто внимательно прочтите гид, особенно раздел 8.6, где говорится о различиях между C и C++.
Если у вас есть немного денег, которые можно потратить на коммерческий продукт, я рекомендую вам взглянуть на продукты Intrinsyc J-Integra для COM или J-Integra для .NET. Я использовал их продукт COM для доступа к стороннему элементу управления ActiveX (библиотека доступа к данным Bloomberg) из кода Java для проекта, над которым я работал несколько лет назад, и он работал очень хорошо. У них есть разумная политика использования пробных / демонстрационных версий, и они очень быстро реагируют на запросы в службу поддержки.
Прямая интеграция Java / .NET может быть выполнена с помощью OOJNI. Google "Объектно-ориентированный JNI для .NET".
Я являюсь автором jni4net, межпроцессного моста с открытым исходным кодом между JVM и CLR. Он построен на базе JNI и PInvoke. Код C / C++ не требуется. Надеюсь, это вам поможет.
К сожалению, похоже, что домашняя страница OOJNI больше не доступна. Сработало бы это также для интеграции WPF в Java? Есть ли еще загрузка?