Pregunta

tengo un servidor - aplicación cliente que se ejecuta en java 1.3; Quiero cambiar a Java 1.6 paso a paso, es decir, primero unos pocos clientes, que el resto de los clientes y finalmente el servidor ... Me preguntaba si podría dirigirme a algunos problemas comunes que pueden surgir y ¿qué debo cuidar?

¿Fue útil?

Solución

Sun intenta mantener un alto nivel de compatibilidad con versiones anteriores, por lo que posiblemente simplemente pueda instalar la nueva JVM y reiniciar su aplicación con ella.

Un documento que describe las incompatibilidades anteriores de Java 1.6 con la versión anterior es aquí . Este documento vincula los documentos de compatibilidad para Java 1.5 y Java 1.4 también. Probablemente desee leer estos documentos para conocer las posibles dificultades.

Java 1.5 y Java 1.6 introdujeron nuevos formatos de archivos de clase. Los JVM también ejecutarán los viejos archivos de clase, pero recompilar su código, especialmente con JDK 1.6, ayudará a que el nuevo JVM aproveche algunos cambios para acelerar su aplicación. Por lo tanto, puede considerar volver a compilar.

Además, se introdujeron algunas palabras clave nuevas, a saber, afirma (en 1.4) y enum (en 1.5) (como ya mencionó Yuval). Si usa estas palabras como identificadores, la recompilación fallará, pero los archivos de clase antiguos funcionarán. Puede proporcionar el conmutador -source a javac para permitir que se compile: ' javac -source 1.3 ' compilará el código sin afirmar y enum como palabra clave.

Otros consejos

En la parte superior de mi cabeza, busque los nombres enum y afirmar en los campos y las variables locales ... Estas palabras se han convertido en palabras clave en Java 1.4 y 5. El compilador de Java 6 los marcará como errores de compilación si los ve.

Yuval = 8-)

Sun mantiene una lista de incompatibilidades que se introducen con cada nueva versión de Java.

El último documento para 1.4.2 tiene enlaces a las notas de compatibilidad con JDK 1.0.

Generalmente, la compatibilidad con versiones anteriores de las JVM de Sun es muy buena, pero no perfecta. He visto tres aplicaciones muy grandes migrar de 1.3 a 1.5 y encontrar solo un pequeño número de problemas, el mayor de los cuales fue una máscara Swing que entró en un ciclo de manejo de eventos sin fin y congeló la aplicación bajo 1.4

Es improbable que la parte del servidor cause problemas, pero ha habido cambios bastante grandes en Swing, especialmente entre 1.3 y 1.4; el subsistema de enfoque se reescribió por completo, por ejemplo.

Todavía es posible que la aplicación se ejecute sin problemas, pero definitivamente debe hacer pruebas exhaustivas.

Cuando pasé de 1.4.2 a 1.5 en un pequeño applet en el que trabajé, se rompieron muchas cosas: la actualización de la pantalla se volvió torpe, los elementos se movieron, etc.

JRE de Sun no mantiene la compatibilidad con versiones anteriores para todo . A veces, cuando los artículos están en desuso, desaparecen por completo después de un período de tiempo muy corto.

Escribimos todo con " stock " Java, usando las bibliotecas de Sun también.

También he visto varias aplicaciones escritas en Java puro que funcionan bien en una o dos plataformas en la misma versión del JRE fallan en otras con esa versión (el producto con el que trabajo ahora funciona muy bien en Windows, ok en Mac OS X, decente en Linux, pero falla en Solaris, todo con el mismo JRE).

Mover versiones no es un paso simple, a menos que la aplicación sea realmente pequeña.

Mi experiencia es que la compatibilidad es bastante alta. Solo he encontrado una aplicación que no pude ejecutar en una versión actual. Por alguna razón (al no tener fuente, por lo que no profundicé en ella), una aplicación no se ejecutaría en otra cosa que no sea 1.4.2. Todo lo demás que he tratado (algunos de ellos bastante grandes) ha llegado a 1.6 muy bien. No se requieren modificaciones.

YMMV, por supuesto, así que tendrás que probarlo y ver ...

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