Как вызвать код Java из C#?
Мы разработали приложение Java и хотели бы использовать это приложение из клиента C#. Приложение имеет зависимости от Spring, Log4j, ...
Какой самый эффективный механизм - сделать DLL(и) из кода Java, ... - для достижения этой цели?
4 ответа
Это действительно потрясающе. Единственная проблема заключается в том, что он добавляет ~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:
Есть так много вариантов,
Розетки
веб-сервисы
Шина сообщений
Используйте любую базу данных! (извините, если это звучит глупо)
Вот обсуждение, которое может быть полезно: https://gridwizard.wordpress.com/2015/01/14/java-and-dotnet-interop
Действительно зависит от того, что вы строите!