2008-10-07 11 views
6

¿Cuál es la mejor forma de convertir el jar existente (sin fuente) escrito en java 1.5 en java 1.4.x?java 1.5 a 1.4

Respuesta

1

Puede descompilarlo, luego volver a compilar. Probablemente tenga que arreglar incompatibilidades a mano. Aquí hay un hilo en java decompilers.

0

Mi intuición es descompilar el frasco, luego volver a compilar como 1.4.

Si no hay 1.5 llamadas API específicas en el código descompilado, debería funcionar bien. Si los hay, deberá volver a diseñar esas secciones para que funcionen en la versión anterior de Java.

12

Eche un vistazo a Retroweaver. Convertirá las clases o jar para que pueda ejecutarse utilizando un 1.4 JRE. Dependiendo de las características 1.5 utilizadas, no necesitará ningún tiempo adicional de ejecución de retrocargado.

Retroweaver utiliza la mejora del código de bytes. Suena misterioso pero funciona.

0

Además de la descompilación, es probable que tenga que refactorizar algunas cosas en el código fuente: enumeraciones, genéricos (no creo que los genéricos estén en el código descompilado, pero eso probablemente signifique que faltará algunos yesos), el boxeo/unboxing, etc. etc.

0

como dijo Rodeoclown,
1) descomprimir el JAR

2) utilizar un descompilador como jad (http://www.kpdus.com/jad.html) utilizando opciones como estos jad -d src - f -ff -s .java -space -t4 ***. clase

3) y de los archivos fuente generados, compilarlos utilizando JDK 1.4 ja vacaciones.

4) si el compilador 1.4 funciona bien, rebundle en frasco nuevo

5) si 1.4 compilador tiene problemas, es necesario utilizar
Retroweaver (http://retroweaver.sourceforge.net/index.html).
Eso podría funcionar en algunos casos PERO si la clase espera cambios en JVM, entonces estás en una situación difícil. Si las clases usan una nueva función de subprocesamiento, puede usar la versión 1.4 de JDK de util.concurrent desde http://g.oswego.edu/dl/classes/EDU/oswego/cs/dl/util/concurrent/intro.html.

¡Buena suerte!

Cuestiones relacionadas