Использование библиотеки .Net через COM или прямую интеграцию в Java - PullRequest
3 голосов
/ 22 января 2009

Я должен признать, что последний раз, когда я программировал на 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; }

}

Ответы [ 5 ]

1 голос
/ 22 января 2009

Если у вас есть немного денег, чтобы потратить на коммерческий продукт, я рекомендую вам взглянуть на Intrinsyc J-Integra для COM или J-Integra для .NET товары. Я использовал их COM-продукт для доступа к стороннему элементу управления ActiveX (библиотеке доступа к данным Bloomberg) из кода Java для проекта, над которым я работал несколько лет назад, и он работал очень хорошо. У них разумная пробная / демонстрационная политика, и они довольно чутко реагируют на запросы поддержки.

1 голос
/ 22 января 2009

Вы можете использовать JACOB

С сайта:

JACOB - это мост JAVA-COM, который позволяет вызывать компоненты автоматизации COM из Java. Он использует JNI для собственных вызовов в библиотеки COM и Win32.

Звучит так, как вы ищете.

0 голосов
/ 31 октября 2009

Я являюсь автором jni4net , внутрипроцессного моста с открытым исходным кодом между JVM и CLR. Он построен на основе JNI и PInvoke. Код C / C ++ не требуется. Я надеюсь, что это поможет вам.

0 голосов
/ 01 февраля 2009

Прямая интеграция Java / .NET может быть выполнена с помощью OOJNI. Google "Объектно-ориентированный JNI для .NET".

0 голосов
/ 22 января 2009

Если вы можете получить доступ к своей библиотеке через C ++, вы можете получить к ней доступ через JNI. JNI довольно прост, просто внимательно прочитайте руководство , особенно раздел 8.6, где говорится о различиях между C и C ++

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...