j'ai choisi ProGuard et voici les options que je configuré avec:En utilisant ProGuard pour obscurcir le code
Shrinking
Options:
- Shrink
Conserver :
- Applications
- Applets
Aussi garder:
- énumérations
- pilotes de base de données
- UI swing L & F
obscurcissement
Options:
- Occultation (duh! : P)
- surcharge agressive
- Utilisez les noms des membres de la classe unique de
- Utilisez des noms de classe mixte casée
- package Aplatir hiérarchie
- Cours reconditionner
noms Conserver:
- noms de méthodes natives
- .Les noms de méthode de classe
Optimisation
Options:
- Optimize
- interfaces de fusion agressive
Supprimer:
- [Toutes les cases cochées]
Informations
Preverifiaction et ciblage:
- Preverify
Cohérence et exactitude:
- Remarque erreurs potentielles dans la configuration
- mettre en garde peut-être entrée errornous
- Ignorer les membres de la classe bibliothèque non publiques
et quand je prends le pot et le mettre comme:
Je reçois cette erreur d'applet lors du lancement:
java.lang.RuntimeException: java.lang.NoClassDefFoundError: b at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source) at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Caused by: java.lang.NoClassDefFoundError: b at java.lang.Class.getDeclaredConstructors0(Native Method) at java.lang.Class.privateGetDeclaredConstructors(Unknown Source) at java.lang.Class.getConstructor0(Unknown Source) at java.lang.Class.newInstance0(Unknown Source) at java.lang.Class.newInstance(Unknown Source) at sun.plugin2.applet.Plugin2Manager$12.run(Unknown Source) at java.awt.event.InvocationEvent.dispatch(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source) Caused by: java.lang.ClassNotFoundException: b at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) ... 14 more Caused by: java.io.IOException: open HTTP connection failed:http://mystikrpg.com/b.class at sun.plugin2.applet.Applet2ClassLoader.getBytes(Unknown Source) at sun.plugin2.applet.Applet2ClassLoader.access$000(Unknown Source) at sun.plugin2.applet.Applet2ClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) ... 17 more Exception: java.lang.RuntimeException: java.lang.NoClassDefFoundError: b
Voici ce qui est dans le fichier jar AVANT l'obscurcissement clientOffline.jar
:
line_tile/
META-INF/
et voici ce que jar est après le faux-fuyants à newOne.jar
:
line_tile/
META-INF/
weapon/
me.gif
a.class
b.class
J'espère c'est assez bon pour m'aider à résoudre cela. Qu'est-ce que je fais mal?
Uhm, j'ai l'option garder les noms cochée. Mais ce serait java -jar proguard.jar @ myconfig.pro -verbose -keepnames? – nn2
"-keepnames class_specification" est le format correct où la spécification de classe peut être "class tileOffline" dans ce cas – rics