Pour le boulot et pour le plaisir je suis régulièrement à la recherche de librairies Java. Soit parce que je reprends du vieux code, soit parce que je copie/colle des snippets à droite ou à gauche.

S’il est facile de retrouver des Jars open sources à l’aide de Google, c’est souvent plus délicat lorsqu’il s’agit de bibliothèques propriétaires (c’est souvent la cas au boulot car nous utilisons de nombreux frameworks non libres).
Le dernier exemple en date, je me suis retrouvé à chercher une classe bien précise. Je connaissais son package et son nom, mais le framework cible contenait des dizaines de Jars. Ne souhaitant pas polluer mon développement, ni notre dépôt Maven je ne me voyais pas tout mettre dans mon pom… Au petit bonheur la chance…
D’habitude j’utilise la recherche de mon OS ou un éditeur de texte capable de faire des recherches sur des fichiers binaires, mais c’est généralement une opération plutôt fastidieuse. Je me suis alors lancé dans l’écriture d’un petit utilitaire permettant de chercher dans des répertoires pour interroger tous les Jars trouvées. Cette recherche aveugle stocke le nom des Jars, les packages et les classes qu’ils contiennent. Pour finalement créer un fichier sérialisant les résultats trouvés. Ce qui me permet d’éviter de me taper le parcours des répertoires à chaque fois. Le résultat, cet « index » est bien évidement mis à jour à chaque nouvelle recherche, de façon à constituer petit à petit une « base » des classes disponibles dans mes environnements de développement.
Une deuxième fonction permet de rechercher une classe précise dans cet « index ». Si la classe est trouvée, le nom du package s’affiche.
Rudimentaire, mais cela me rend déjà des services 🙂

En en parlant autour de moi je me suis rendu compte que je n’étais pas le seul à chercher régulièrement des Jars.
Si vous rencontrez ce même besoin, vous trouverez les sources de ce mini projet à la fin ce poste… Ce n’est pas grand chose, quelques lignes de Java et un mvn package. Je n’ai même pas pris la peine de commenter le code, mais si cela peu dépanner.

Edit : voir maintenant ce post, Petite mise à jour de classfinder

Projet eclipse : http://www.kaerith.fr/download/classfinder.zip
Jar : http://www.kaerith.fr/download/classfinder.jar

java -jar classfinder.jar -index chemin du répertoire à indexer
java -jar classfinder.jar -search nom de la classe.class

Notes :

  • le nom de la classe est sensible à la casse.
  • le jar actuel nécessite java 1.6
  • si vous souhaiter enrichir au fur et à mesure votre index, n’oubliez pas de conserver à côté du jar le fichier map.ser