par , 26/02/2017 à 12h29 (1214 Affichages)
Si lors de vos développement vous vous posez la question, mais dans quels fichier JAR se trouve la Classe que je recherche parmi ces centaines de fichiers JAR, alors ce petit script Shell est pour vous, il vous permettra de retrouver une classe Java par son nom dans une liste de fichiers JAR d'un dossier.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
| #!/bin/dash
syntaxe()
{
clear
echo "\033[1;32;40mgetFileFromClass V1.0\033[1;37;40m"
echo "Dans quel fichier jar se trouve la Classe ?"
echo "Tondeur Hervé - 2016"
echo ""
echo "\033[4;37;40mSyntaxe\033[0;37;40m : "
echo "$0 JarLibPath ClassName"
echo ""
echo "\033[4;37;40mJarlibPath\033[0;37;40m : Chemin complet ou se trouve les fichier JAR dans lesquels il faut rechercher la classe."
echo "\033[4;37;40mClassName\033[0;37;40m : nom partiel ou complet de la classe a rechercher, ne prend pas en compte la casse du nom de la classe!"
echo ""
exit 250
}
if [ $# -lt 2 ]
then
syntaxe
fi
class=$2
chemin=$1
#tester si le dossier existe et nom de la classe non vide
if [ -d "$chemin" ] && [ ${#class} -gt 1 ]
then
clear
echo "Rechercher la classe : $class => dans le dossier : $chemin"
echo ""
#envoyer les msg d'erreurs vers null
listJar=`ls $chemin/*.jar 2>/dev/null`
#compter nb car retourné si >0 ok
if [ ${#listJar} -eq 0 ]
then
echo "Il n'y a pas de fichier jar dans le dossier : $chemin"
syntaxe
fi
echo "\033[1;37;40m"
#lister les tables des fichiers jar et faire un grep sur celles ci
for fjar in $listJar
do
jar -tvf "$fjar" | grep -Hsi "$class" && echo "\033[1;31;47m$fjar\033[1;37;40m"
done
else
echo "Le dossier : $chemin : n'existe pas, verifiez la syntaxe...!"
syntaxe
fi |