Tricks Java

De DocUnix.

Comment déterminer une Class not found

Créer un répertoire vide pour pouvoir piger les appels non-résolus :

mkdir /tmp/NON_TROUVE

Ajouter à la fin du ClassPath le répertoire vide /tmp/NON_TROUVE

Ensuite, il suffit d'espionner avec truss ou tusc suivant les OS

truss -f -l -t open,stat -o /var/tmp/truss.jvmX     script_de_lancement   ou -p pid

Puis chercher dans le fichier généré les appel à /tmp/NON-TROUVE

grep /tmp/NON_TROUVE /var/tmp/truss.jvmX 

Recupérez le chemin complet com/.../xxx.class

Puis faire un find pour trouver ou se trouve réellement la class pour l'ajouter dans le ClassPath de la JVM.

find repertoires_contenant_des_jar -name "*.jar" -type f | xargs fgrep -l com/...../xxx.class

Merci à Jérôme pour cette astuce.

Outils personnels