Как вызвать код Java из C#?

Мы разработали приложение Java и хотели бы использовать это приложение из клиента C#. Приложение имеет зависимости от Spring, Log4j, ...

Какой самый эффективный механизм - сделать DLL(и) из кода Java, ... - для достижения этой цели?

4 ответа

IKVM!

Это действительно потрясающе. Единственная проблема заключается в том, что он добавляет ~30 МБ к проекту. log4net и Spring .NET также доступны, но если вы живете с существующим кодом, перейдите по маршруту ikvm.

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

В качестве альтернативы вы можете написать слой webservice/xmlrpc между ними.

Кажется, я помню, что есть инструмент, называемый grassshopper, который скомпилирует ваш код.Net в байт-код JVM.

Я также слышал хорошие вещи об IKVM

Вот несколько ссылок, которые могут помочь:

http://www.devx.com/interop/Article/19945/1954
http://www.ezjcom.com/?gclid=CJflqrms9ZUCFRqH1QodPSb_hA

Mainsoft выполняет кросс-компилятор.NET -> JVM, но вы можете не захотеть перекомпилировать приложение.NET:

http://dev.mainsoft.com/Default.aspx?tabid=130

Есть так много вариантов,

  1. Розетки

  2. веб-сервисы

  3. Шина сообщений

  4. Используйте любую базу данных! (извините, если это звучит глупо)

Вот обсуждение, которое может быть полезно: https://gridwizard.wordpress.com/2015/01/14/java-and-dotnet-interop

Действительно зависит от того, что вы строите!

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