2008-09-24 22 views
23

Desarrollamos una aplicación Java y nos gustaría utilizar esta aplicación desde un cliente C#. La aplicación tiene dependencias en Spring, Log4j, ...¿Cómo llamar código Java desde C#?

¿Cuál sería el mecanismo más eficiente? ¿Hacer DLL (s) desde código Java, ... - para lograr esto?

+0

Posible duplicado de [Uso de Java-classes con C#] (http://stackoverflow.com/questions/171717/using-java-classes-with-c-sharp) – Pekka

Respuesta

24

IKVM!

Es realmente impresionante. El único problema es que agrega ~ 30MB al proyecto. log4net y Spring .NET también están disponibles, pero si viven con el código existente, vaya a la ruta ikvm.

+3

En la última versión de IKVM, la biblioteca JDK se divide en conjuntos separados. Dependiendo de lo que necesite, probablemente ya no tendrá 30 MB de equipaje. El conjunto de jdk core es de aproximadamente 5 MB. –

2

alternativamente podría escribir una capa webservice/xmlrpc entre las dos.

Me parece recordar que hay una herramienta llamada calles grassshopper que compilará su código .Net en el bytecode de JVM.

también he oído cosas buenas sobre IKVM

11

Soy el autor de jni4net, puente de interproceso de fuente abierta entre JVM y CLR. Se basa en JNI y PInvoke. No se necesita código C/C++. Espero que te ayude.

+0

Perspectiva muy interesante, felicidades ... – gustavodidomenico

0

Hay tantas opciones,

  1. tomas

  2. servicios web

  3. bus de mensajes

  4. Utilice un/cualquier base de datos! (Lo siento si el sonido tonto)

Aquí hay una discusión que puede ser útil: https://gridwizard.wordpress.com/2015/01/14/java-and-dotnet-interop

realmente depende de lo que usted está construyendo!

+0

El OP solicitó específicamente "llamadas". Todos los enfoques que identifica implican 'enviar mensajes'. La última opción, la base de datos, es discutible, incluso menos directa al requerir el sondeo de una tabla de etapas. – Pekka