Question

J'ai une application client-serveur qui s'exécute sur Java 1.3; je veux changer java 1.6 étape par étape, ce qui signifie quelques premiers clients, que le reste des clients et enfin le serveur ... Je me demandais si vous pouviez me diriger vers des problèmes courants qui peuvent survenir et de quoi devrais-je m'occuper?

Était-ce utile?

La solution

Sun essaie de conserver un haut niveau de compatibilité ascendante afin que vous puissiez simplement installer la nouvelle machine virtuelle Java et redémarrer votre application avec celle-ci.

Un document décrivant les incompatibilités antérieures de Java 1.6 avec une version antérieure est ici. . Ce document relie les documents de compatibilité pour Java 1.5 et Java 1.4 . Vous voudrez probablement lire ces documents pour en savoir plus sur les pièges possibles.

Java 1.5 et Java 1.6 ont introduit de nouveaux formats de fichier de classe. La JVM exécutera également les anciens fichiers de classe, mais la recompilation de votre code - en particulier avec JDK 1.6 - aidera la nouvelle JVM à tirer parti de certaines modifications pour rendre votre application plus rapide. Donc, vous pourriez envisager de recompiler.

De plus, de nouveaux mots-clés ont été introduits, à savoir assert (en 1.4) et enum (en 1.5) (comme déjà mentionné par Yuval). Si vous utilisez ces mots comme identificateurs, la recompilation échouera, mais les anciens fichiers de classe fonctionneront. Vous pouvez fournir le commutateur -source à javac pour le laisser compiler: ' javac -source 1.3 ' compilera le code sans assert et enum en tant que mot clé.

Autres conseils

De mémoire, cherchez les noms enum et assert dans les champs et les variables locales ... Ces mots sont devenus des mots clés dans java 1.4 et 5. Le compilateur Java 6 les marquera comme des erreurs de compilation s’il les voit.

Yuval = 8-)

Sun conserve une liste des incompatibilités introduites avec chaque nouvelle version de Java.

Le dernier document de la version 1.4.2 contient des liens vers les notes de compatibilité renvoyées à JDK 1.0.

En règle générale, la compatibilité ascendante des machines virtuelles Java de Sun est très bonne, mais pas parfaite. J'ai vu trois très grandes applications migrer de la version 1.3 à la version 1.5 et ne rencontrer qu'un petit nombre de problèmes, dont le plus important était un masque Swing entrant dans une boucle de gestion d'événements sans fin et bloquant l'application sous la version 1.4

Il est peu probable que la partie serveur cause des problèmes, mais Swing a subi de très importants changements, particulièrement entre 1.3 et 1.4 - le sous-système de focus a été complètement réécrit, par exemple.

Il est toujours possible que l'application s'exécute sans problème, mais vous devez absolument effectuer des tests approfondis.

Lorsque je suis passé de la version 1.4.2 à la version 1.5 sur une petite applet sur laquelle j'ai travaillé, beaucoup de choses se sont cassées: l'actualisation de l'écran a perdu son sens, les éléments ont été déplacés, etc.

JRE de Sun ne conserve pas la compatibilité ascendante pour tout . Parfois, lorsque les articles sont déconseillés, ils disparaissent complètement après une très courte période.

Nous avons tout écrit avec " stock " Java, en utilisant également les bibliothèques de Sun.

J'ai également vu plusieurs applications écrites en Java pur qui fonctionnaient bien sur une ou deux plates-formes de la même version du JRE, échouaient sur d'autres avec cette version (le produit avec lequel je travaille fonctionne maintenant très bien sous Windows, ok sous Mac OS X, correct sous Linux, mais échoue sous Solaris - tous avec le même JRE).

Le déplacement de versions n'est pas une simple étape, à moins que l'application ne soit vraiment petite.

Mon expérience est que la compatibilité est assez élevée. Je n'ai trouvé qu'une seule application pour laquelle je n'ai pas pu exécuter une version actuelle. Pour une raison quelconque (n'ayant pas de source, je ne l'ai donc pas analysée), une application ne fonctionnerait que sur la version 1.4.2. Tous les autres problèmes auxquels j’ai eu à faire (certains d’entre eux assez importants) atteignent très bien 1,6. Aucune modification requise.

YMMV bien sûr, vous devrez donc l'essayer et voir ...

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top