Voici un stacktrace qui peut paraître inhabituel aux premiers abords:
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.
Ce serait effectivement une bonne idée. A l’heure actuelle il existe le site communautaire StackOverflow. Rien de sophistiqué vu que c’est un genre de faq vivante mais c’est un chouette site pour avoir un conseil rapide et une mine d’or point de vue information.
Le mieux serait d’avoir un journal communautaire avec des outils adaptées pour obtenir des solutions très rapidement.