Comment puis-je utiliser ProGuard?

J'essayais d'apprendre à utiliser ProGuard, et il n'est pas une façon aussi facile que je le pensais. Au début j'ai trouvé un simple code Java pour l'essayer, une simple deux classes Swing calculatrice.

Le code peut être consulté en suivant ce lien, mais je l'ai trouvé trop verbeux pour poster les ici. De toute façon, c'est une simple application avec point d'entrée sur Calc.main(), il n'y a pas de paquets.

Puis j'ai compilé les deux sources avec:

$ javac *.java

et créé le .jar fichier (car il semble ProGuard travaillons uniquement avec des pots):

$ jar cvef Calc calc.jar *.class
added manifest
adding: Calc.class(in = 3869) (out= 2126)(deflated 45%)
adding: Calc$ClearListener.class(in = 468) (out= 327)(deflated 30%)
adding: CalcLogic.class(in = 1004) (out= 515)(deflated 48%)
adding: Calc$NumListener.class(in = 1005) (out= 598)(deflated 40%)
adding: Calc$OpListener.class(in = 1788) (out= 1005)(deflated 43%)

A écrit le ProGuard fichier nommé obfuscate.pro:

-injars       calc.jar
-outjars      calc_obf.jar
-libraryjars  <java.home>/lib/rt.jar

-keep public class Calc extends javax.swing.JFrame {
public static void main(java.lang.String[]);
}

Et enfin exécuter ProGuard:

$ ~/progs/proguard/proguard4.8/bin/proguard.sh @obfuscate.pro
ProGuard, version 4.8
Reading program jar [/home/lucas/tmp/calc.jar]
Reading library jar [/usr/lib/jvm/java-7-openjdk-i386/jre/lib/rt.jar]
Error: The output jar is empty. Did you specify the proper '-keep' options?

Bon, évidemment, n'a pas fonctionné. Je suis fatigué de jouer avec ProGruard paramètres, spécialement avec qui -keep options, sans succès. Tout ce que je trouve dans les docs liés à mon problème ne pouvait pas m'aider. Ensuite j'ai recours à vous... Quel est le problème? Comment le faire correctement?

  • Votre main méthode est en majuscule, dont il est presque certainement ne devriez pas être.
  • Droit, fixe. Toujours le même problème.
  • Cela semble bien pour moi. Pouvez-vous envoyer votre pot et votre ProGuard de configuration quelque part, afin que nous puissions tester des solutions au lieu de simplement deviner ce qui pourrait être mal sur votre ordinateur?
  • Je n'ai pas de ProGuard de configuration, juste déballé et utilisé immédiatement, à partir de la bin répertoire (voir mon invocation). J'ai donné toutes les étapes pour construire le pot, mais il est ici: 4shared.com/file/xekHfRyx/calc.html?refurl=d1url
InformationsquelleAutor lvella | 2012-08-24