samedi 15 mars 2014

Afficher le classpath

Lorsqu'une erreur NoClassDefFoundError, il peut être utile de voir le classpath utilisé et afficher la stratégie de recherche.
Pour ce faire, rien de plus simple, il suffit d'ajouter au lancement de la JVM l'option -verbose:class.
Dans ce cas, voilà la sortie obtenu :
[Loaded java.lang.Object from shared objects file]
[Loaded java.io.Serializable from shared objects file]
[Loaded java.lang.Comparable from shared objects file]
[Loaded java.lang.CharSequence from shared objects file]
[Loaded java.lang.String from shared objects file]
... 260 lines deleted ...
[Loaded sun.misc.URLClassPath from shared objects file]
[Loaded sun.net.www.protocol.jar.Handler from shared objects file]
[Loaded sun.misc.Launcher$AppClassLoader from shared objects file]
[Loaded sun.misc.Launcher$AppClassLoader$1 from shared objects file]
[Loaded java.lang.SystemClassLoaderAction from shared objects file]

Comme vous allez vous en apperçevoir, il y aura beaucoup de lignes à lire, mais avec un peu de patience on y arrive.

Pour l'appliquer dans le cadre d'un serveur d'application, c'est dans les options de la JVM du démarrage du serveur qu'il faudra mettre l'option.