2011-03-28 3 views
0

J'ai une application qui utilise environ 20 fichiers jar externes. Afin de regrouper tout dans un seul fichier pour la distribution, j'ai été unjaring tous les externals dans un répertoire particulier et ensuite rejeter tout dans un pot. Le résultat final est d'environ 2MB. Je veux utiliser jarjarlinks pour réduire la taille du pot de distribution, mais je ne trouve pas d'exemples sur la façon de faire ce que je veux. Essentiellement, je veux seulement prendre des pots externes, les classes que j'utilise et jeter tout le reste. Can jarjarlinks faire cela? Si non, y a-t-il une autre utilité que quelqu'un pourrait recommander?Utilisation de jarjarlinks pour inclure uniquement les classes utilisées dans un pot

Mes sources à ce jour:

http://code.google.com/p/jarjar/wiki/GettingStarted

http://jonasboner.com/2005/12/09/stay-out-of-jar-hell-with-jar-jar-links.html

http://sixlegs.com/blog/java/dependency-killer.html

+0

J'ai fait (potentiellement) des progrès. En regardant le wiki de la ligne de commande, il y a une règle appelée keep, qui prend un modèle et traite toutes les classes qui correspondent à ce modèle en tant que racines. Toutes les autres classes qui ne sont pas connectées via des dépendances à ces racines sont supprimées. Cela semble être exactement ce que je veux, cependant, chaque fois que je l'exécute, le pot résultant est corrompu. Je l'ai extrait et le fichier manifeste est manquant. Je ne vois pas de moyen immédiat d'empêcher cela de se produire - il ne semble pas y avoir d'argument manifeste ou quoi que ce soit à la directive de processus. Des pensées? – JDS

Répondre

0

Vous pouvez également utiliser un outil appelé autojar.

En ce qui concerne le fichier manifeste, vous pouvez ajouter un avec l'option -e de la commande jar une fois que le pot est emballé:

jar -uvfe myjar.jar full.name.of.class.with.main.method 
+0

Cela l'a fait. En tout, j'ai rasé environ 1MB. Merci pour le conseil. – JDS

Questions connexes