Yann Moisan

Scala, Web, Linux…

Migration de Java 6 à Java 5.

Sur mon projet actuel, nous avons du retrograder la version de Java utilisée. Seulement trois problèmes se sont posés :

@Override

Depuis Java 6, il est possible d'utiliser l'annotation @Override sur les méthodes qui implémentent une méthode d'une interface. Pour l'anecdote, ce changement n'est pas documenté : la javadoc de l'annotation n'a pas été modifiée. La solution consiste à supprimer ces lignes. Cela est automatisé avec la ligne de commande suivante :

find . -name "*.java" -exec sed -i '/@Override/d' {} \

JAXB

Nous utilisons JAXB, qui a été intégré dans Java 6. La solution consite à ajouter les librairies suivantes au classpath:

  • activation.jar
  • jaxb-api.jar
  • jaxb-impl.jar
  • jaxb1-impl.jar
  • jsr173_1.0_api.jar

HSQLDB

Nous utilisons HSQLDB 2.0 pour les tests unitaires. A l'execution, le code lance la classique exception suivante : java.lang.UnsupportedClassVersionError: Bad version number in .class file. L'explication est simple : depuis la version 2, le binaire est compilé avec Java 6. La solution consiste à récupérer la version snapshot qui est disponible pour java 6 et java 5 sur le site officiel.