Pregunta

Tengo un código de 25k (líneas, líneas de pruebas 25k) de tamaño mediano base de código en Java, y me gustaría puerto que se ejecute en un CLR, así como la JVM.

Sólo la clase principal, y unas pocas pruebas de los servicios públicos se ocupan del sistema de archivos o el sistema operativo de ninguna manera. El resto del código utiliza las colecciones genéricas Apis extensivamente, java.util.regex, java.net (pero no URL o URLConnection), java.io para charset de codificación / decodificación, java.text para la normalización Unicode, y org.w3c. dom para la manipulación de XML.

¿Es posible obtener la mayor parte de la base de código compilar tanto bajo J # y Java, y luego el resto del puerto?

Si es así, ¿qué tipo de trampas soy probable que se encuentre?

Gracias de antemano, mike

¿Fue útil?

Solución

Salida IKVM: http://www.ikvm.net/

Se le permite ejecutar (especialmente compilado) código Java dentro del CLR .NET.

Algunos de mis colleages que lo han utilizado con éxito con una base de código Java de 1 millón de líneas de código +.

Otros consejos

Errores:

  • ¿Algo como esto asusta a los demonios fuera de mí. El número de errores muy sutiles a punto de ocurrir es enorme.
  • J # sólo es compatible con Java 1.1.4 que yo sepa -. Genéricos adiós etc.
  • Visual Studio 2008 no es compatible con J # - básicamente se trata de un proyecto muerto
  • .

Sospecho que habías hecho resulta más sencillo volver a escribir en C # (incluyendo el aprendizaje de C # si no lo hace ya lo saben - es una alegría). Usted va a terminar con una biblioteca de más idiomáticamente .NET parecido de esa manera también, si eso es relevante: si alguna vez quiere otro desarrollador .NET para consumir su código, que es probable que sea mucho más feliz con un "puro". NET de un uso de J #.

La desventaja es que en el futuro, también tendrían que ser hecho en dos lugares cualesquiera cambios. Ciertamente hay dolor allí, pero realmente creo que tendrá una mejor experiencia en el uso de .NET "normal".

Como Jon señaló:. J # es bastante muerto

El funcionamiento de su (normal) de código Java en .NET utilizando IKVM podría ser una alternativa ', sin embargo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top