2008-09-30 27 views

Respuesta

4

No, no se puede. A menos que usted está dispuesto a utilizar algunos "J #" bibliotecas (que no es casi el mismo que el de Java) o IKVM que es una aplicación Java que se ejecuta en la parte superior de .NET, pero como su documentación dice:

IKVM. OpenJDK.ClassLibrary.dll: versión compilada de las bibliotecas de clases de Java derivadas de la biblioteca de clases OpenJDK con algunas partes rellenas con código de GNU Classpath e IcedTea, más algún código específico adicional de IKVM.NET.

Así que no es el verdadero negocio.

+0

+1 para IKVM lo usamos para comunicar bien entre nuestra .NET UI y el servidor Java a través de los resguardos RMI envueltos por los ensamblajes IKVM. – Matt

+0

De hecho, IKVM hace el trabajo bien siempre que los componentes no estén basados ​​en AWT/Swing. – jsight

1

Nada fuera de la caja.

La mayor parte de la interoperabilidad de java/.net que conozco utiliza los servicios web.

1

Si puede crear componentes COM con Java, puede usar tlbimp para crear un conjunto de interoperabilidad para usar en VB.Net.

Si puede crear archivos DLL estándar que se pueden usar desde C++ con Java, puede escribir declaraciones de P/Invocar y llamarlos desde VB.Net.

Si puede crear un servicio web con Java, puede generar una clase de proxy desde el WSDL y llamarlo desde VB.Net.

En cualquier caso, es probable que el componente de Java viva en un proceso separado. Dudo que pueda cargar tanto la VM Java como la CLR en el mismo proceso.

1

Si tiene el código fuente y lo compila con el compilador J #, entonces la respuesta es sí. Si desea llamar a cualquier biblioteca pre-Java 2 (aka 1.2), entonces estas se incluyen más o menos al pie de la letra con J #. Sin embargo, las cosas más recientes van a ser difíciles (es decir, no están allí).

Un ejemplo donde esto se usa comercialmente son los algoritmos de diseño de gráfico yFiles de yWorks. Originalmente eran solo una biblioteca de Java, pero en los últimos años han estado ofreciendo una versión de .NET, que es solo la versión de Java compilada con Visual J #.

No es sin problemas, y hay algunas limitaciones que no se pueden evitar, pero se puede hacer. Entonces ... desafortunadamente esta respuesta parece bastante turbia también.

0

Usted podría utilizar JNI para crear instancias de una máquina virtual y luego utilizar clases de Java. Sin embargo, será algo divertido, porque necesitaría usar C++ como un puente entre VB.Net y Java.

Este artículo en java world tiene un tutorial rápido sobre cómo usar Java desde C++ y viceversa.

http://www.javaworld.com/javaworld/javatips/jw-javatip17.html

0

Si usted tiene la fuente, Visual Studio le permitirá convertir código Java en C#.

3

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

Cuestiones relacionadas