Pregunta

Tengo un proyecto que usa genéricos y algunos bits y piezas Java 1.5/6. ¿Es posible compilar este código para que funcione en un sistema que ejecuta un 1.4 JRE?

Utilizo un script de compilación de hormigas y una tarea Javac para compilar la biblioteca. Esto se acumula bien, mientras que el atributo objetivo es 1.5.

Si cambio el objetivo para que sea 1.4, recibo el siguiente error:

generics are not supported in -source 1.4 
(use -source 5 or higher to enable generics)

Entonces agrego un atributo de origen y pruebo un valor de 5 y 1.5. Nuevo error:

javac: source release 5 requires target release 1.5

¿Voy a tener que pasar por todo mi código y cambiar las cosas 1.5 para que esto funcione?

¿Fue útil?

Solución

No he usado ninguna de estas soluciones, pero hay

  1. Retrovisor
  2. especificando el no compatible -target jsr14 mayo trabajar
  3. Retrotranslator
  4. Declatador
  5. Jbossretro

También puedes encontrar javac -XD-printflat útil (aunque tenga cuidado de no sobrescribir su fuente original).

Otros consejos

Tengo un proyecto que usa genéricos y algunos bits y piezas Java 1.5/6. ¿Es posible compilar este código para que funcione en un sistema que ejecuta un 1.4 JRE?

No.

¿Voy a tener que pasar por todo mi código y cambiar las cosas 1.5 para que esto funcione?

Sí. Pero hay una manera de automatizar eso, utilizando una herramienta llamada Retrovisor. Sin embargo, no hay garantía de que atraiga todo.

He tenido una buena experiencia con Retranslator (Retroweaver no funcionó bien con lo que necesitaba, no puedo recordar exactamente qué).

Funcionó muy bien para mi propósito (creando versiones JDK1.4 de logback).

http://recrotranslator.sourceforge.net/

Los genéricos se implementan mediante borrado de tipo, por lo que deben funcionar antes de que se introduzcan los genéricos. Sin embargo, no podrá compilar el código con una versión anterior del compilador (no sé por qué querrá hacerlo)

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