L’éditeur GUI WindowBuilder Pro

Cela faisait un bon moment que je cherchais un éditeur graphique pour Eclipse. Suite à la recommandation d’un demandeur de projet récemment j’ai pu découvrir WindowBuilder Pro un plugin pour Eclipse venant de Google qui permet d’éditer des interfaces graphiques directement dans l’IDE.

Lire la suite

Transformer un ResultSet en ArrayList

La possibilité de transformer un ResultSet en ArrayList est particulièrement intéressante, surtout dans le contexte d’un DAO (Data Access Object) lorsqu’on souhaite récupérer une liste d’objets. Voici un exemple code source qui permet d’effectuer cette transformation.

Lire la suite

Tenir un journal d’erreurs

Voici un stacktrace qui peut paraître inhabituel aux premiers abords:

java.lang.NoClassDefFoundError: test/CSVTest
Caused by: java.lang.ClassNotFoundException: test.CSVTest
  at java.net.URLClassLoader$1.run(Unknown Source)
  at java.security.AccessController.doPrivileged(Native Method)
  at java.net.URLClassLoader.findClass(Unknown Source)
  at java.lang.ClassLoader.loadClass(Unknown Source)
  at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
  at java.lang.ClassLoader.loadClass(Unknown Source)
Exception in thread "main"

Une première lecture de ce message mènerais à penser que Java n’arrive pas à trouver la classe qu’on vient de lancer avec un run. Après tout le ClassNotFoundException mentionne bien la classe en question. Mais cela n’a aucun sens.

Un deuxième réflexe serait de lancer « Project>Clean… ». Il est toujours possible que l’IDE a des soucis pour compiler toutes les classes et qu’un fichier class soit absent. Mais ce n’est pas non plus la solution.

Evidemment, les développeurs plus experimentés savent que ce genre d’Exception est le plus souvent lié à un package manquant. Ce qui fut bien le cas ici car j’avais supprimé spring.jar sans reconfigurer les bibliothèques dans les propriétés du projet.

Ce genre d’erreur peut prendre du temps à résoudre si on y est confronté pour la première fois. C’est pourquoi tenir un journal d’erreurs (voir modèle ci dessous) est une bonne idée lorsqu’on démarre avec un nouveau langage ou framework. Celui-ci vous évitera de rester bloqué sur des problèmes déjà rencontrés et de mieux avancer dans la réalisation de vos applications.

Date: 13/03/2011
Message d’erreur: java.lang.NoClassDefFoundError
Cause: JAR supprimé manuellement du dossier lib
Solution: Remettre le jar ou l’enlever du build path

– James Poulson.