Использование библиотеки .Net через COM или прямая интеграция в Java

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

}
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
3
0
1 007
5

Ответы 5

Вы можете использовать ДЖЕЙКОБ

С сайта:

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".

К сожалению, похоже, что домашняя страница OOJNI больше не доступна. Сработало бы это также для интеграции WPF в Java? Есть ли еще загрузка?

milbrandt 27.07.2017 17:29

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

Другие вопросы по теме