java c# .net interop

guava java



¿Utiliza una API de biblioteca.jar java en C#? (2)

Soy un programador de nivel de entrada así que sea descriptivo en sus respuestas.

Estoy tratando de usar una API Java dada como un archivo .jar en mi aplicación C # .net. No sé mucho de Java, pero este archivo .jar dice "no hay atributo de manifiesto de clase principal" cuando intento ejecutarlo, así que esto significa que es una biblioteca. Esta API Java también viene con un archivo .java que muestra cómo usar la biblioteca pero no puedo ver el código dentro de .jar.

Encontré esta pregunta en este sitio, y una de las respuestas dice: "De manera simple, puedes empacar tus clases Java en un archivo jar y luego en C # usar la clase Process para ejecutar y asignar la secuencia IO". Estoy semi familiarizado con la clase Process en C #, pero no entiendo cómo podría usarlo para usar una biblioteca Java en mi proyecto C # .net.

es posible? o fue esa respuesta incorrecta?

Si es así, ¿podría explicar cómo puedo usar la biblioteca .jar en mi aplicación C #?


Eche un vistazo a IKVM ... tiene herramientas para darle algún nivel de interoperabilidad. Cuando dices Java API, supongo que quieres llamar algunas funcionalidades desde el contenedor en lugar de simplemente ejecutarlo


Puedes hacerlo usando IVKM.Net. IVKM.NET incluye una aplicación llamada ikvmc. Aquí está la documentación para esta herramienta:

http://www.ikvm.net/userguide/ikvmc.html

Para usarlo compila tu código Java en un Jar.

Luego ejecuta el programa ikvmc:

ikvmc myCode.jar

Si su jar contiene una función main (), se convertirá en un exe que se puede ejecutar en el CLR. De lo contrario, se convertirá en dll. Para usar los dll en su proyecto, simplemente agréguelos como referencias en Visual Studio y se podrá acceder a la misma API que estaba disponible para usted en Java en su aplicación .Net.

También puede incluir el archivo dll IKVM.GNU.Classpath.dll de ikvmc y usar las bibliotecas de clase java estándar en su aplicación.