Un ami me demandait comment faire pour comparer 2 fichiers jar et en voir le contenu. La commande jar est similaire à la commande tar sous unix. Si en ligne de commande vous faîtes un « jar tvf toto.jar » vous allez lister le contenu du fichier jar (t=tape, v=verbose et f=file was specified). Sous windows, dans une fenêtre terminal Dos, vérifiez que jar est dans le path en tapant « jar » et entrée. Vous devez obtenir ceci:
Usage: jar {ctxu}[vfm0Mi] [jar-file] [manifest-file] [-C dir] files ... Options: -c create new archive -t list table of contents for archive -x extract named (or all) files from archive -u update existing archive -v generate verbose output on standard output -f specify archive file name -m include manifest information from specified manifest file -0 store only; use no ZIP compression -M do not create a manifest file for the entries -i generate index information for the specified jar files -C change to the specified directory and include the following file If any file is a directory then it is processed recursively. The manifest file name and the archive file name needs to be specified in the same order the 'm' and 'f' flags are specified. Example 1: to archive two class files into an archive called classes.jar: jar cvf classes.jar Foo.class Bar.class Example 2: use an existing manifest file 'mymanifest' and archive all the files in the foo/ directory into 'classes.jar': jar cvfm classes.jar mymanifest -C foo/ .
Pour visualiser votre fichier jar toto.jar vous ferrez donc un jar tvf toto.jar > liste_fichier.txt par exemple. Et sous unix avec grep et compagnie, il devient facile de comparer 2 fichiers.
Autre astuce: avec Winzip vous pouvez ouvrir les fichiers jars sous Windows. Alors pourquoi s’en priver ?