Pregunta

Quiero puerto de algunas bibliotecas J2SE existentes (por ejemplo, bibliotecas Apache compresión) a utilizar para el desarrollo de Blackberry, pero hay un problema (y no sólo uno).

En primer lugar, la mayoría de las librerías de Java utilizan ampliamente colecciones J2SE y tipos de datos que normalmente están ausentes en las plataformas J2ME - pero eso es en teoría gracias resolubles abrir el código de las implementaciones de la API de J2SE como Apache Harmony. El problema más grande es que, al parecer, Blackberry JDK está basado en Java 1.4, por lo que cualquier código que utiliza los genéricos y otras características, como el 1,5 enumeraciones, no es sin esfuerzo compilables de Blackberry.

Lo que plantea una interesante cuestión de si existen herramientas o proyectos existentes por ahí que haría la conversión automática 1.5-> 1.4, mientras que el apoyo de código de bytes J2ME-bastarda:)

Uno de los proyectos pude encontrar es Retroweaver , pero no estoy muy seguro de qué tan activo es aquel proyecto es.

Estoy seguro de que el problema de 1.5-> 1.4 conversión automática no es única - de modo ¿Alguien tiene alguna experiencia con ella

¿Fue útil?

Solución 4

Así que aquí es lo que terminé haciendo hasta ahora:. Declawer + código personalizado para la generación de clases de enumeración

El diferenciador cosa sobre Declawer es que, aunque es muy simple y, francamente, un poco de un truco (que se basa en una capacidad indocumentado de JavaC), su salida es el código de Java real en comparación con una mayor o convertido el código de bytes de Java . Eso es muy valioso para el desarrollo móvil basada en Java que, francamente, la modificación de código de bytes / instrumentación no es en absoluto tan desarrollado para plataformas J2ME como lo es para J2SE, y hay sólo no hay garantías de que las cosas van a trabajar fuera de la caja de la manera que hacen con J2SE donde estas herramientas ya han sido utilizados por un buen número de desarrolladores.

funcionalidad

de Declawer está limitado (sin amor durante 1,5 enumeraciones o autoboxing), así que tuve que añadir un script en Python para generar automáticamente clases equivalentes en funcionalidad a 1,5 enumeraciones de descriptores simples. Esta generación ocurre en tiempo de compilación.

Esto se refiere a mis preocupaciones hasta ahora, con la única excepción de la búsqueda de un contenedor IoC buena J2ME-amigable de usar para mi aplicación (una vez que pruebe estos chicos, que es tan difícil renunciar a ellos.)

Pero eso es una discusión para un subproceso diferente.

Otros consejos

¿Has probado Retrotranslator ? He leído que hace un trabajo mejor que Retroweaver.

Aquí algo más he encontrado aquí en desbordamiento de pila:

  

Compilar con el javac regular y la orientación de una JVM mayor le dará el código de bytes adecuado para los genéricos al menos

Lo que absolutamente tiene sentido tratar.

Retroweaver

Lo he utilizado en el pasado (J2SE, no J2ME) - funcionó muy bien. El coste de su utilización es un par de dependencias de tiempo de ejecución adicionales.

Actualización 01/28/2013 : Después de ejecutar a tener problemas con Retroweaver, he cambiado a RetroTranslator .

Esto es más de dos herramientas que he encontrado (que enlacen con la página de Retrotranslator):

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