http://www.deine-stimme-gegen-armut.de
Proguard und Windows - und ganz eigene Fehlermeldungen

Proguard und Windows - und ganz eigene Fehlermeldungen

Posted by Dirk on Do, 08/07/2008 - 08:58 in

Nun bin ich dabei, eine Eclipse RCP-Applikation zu exportieren. Und dabei wird sie mit obfuscate4e und dem eingebauten Proguard-Obfuskator verarbeitet. Ich sitze an einem Windows-PC und bekomme Fehlermeldungen, die ich zuvor (beim Produktexport unter Linux) nicht kannte: ClassNotFoundExceptions in obfuskierten Packages. Nach der Recherche im Mappingfile proguard.map und im obfuskierten Plugin-Jar zeigte, dass Proguard in der Voreinstellung die ersten 26 Klassen eines Packages in "a.class" bis "z.class" umbenennt und dann mit Großbuchstaben weitermacht: "A.class" bis "Z.class". Beim Produktexport werden die generieten Jars noch mal ausgepackt – und schon sind die Kleinbuchstaben-Klassen unter Windows weg.

Abhilfe schaffte das Einsetzen des Schalters -dontusemixedcaseclassnames in der Proguard-Konfiguration, und schon macht Proguard bei der 27. Klasse eines Packages mit "aa.class" weiter. Das sollte m.E. Voreinstellung sein!

Einen interessanten Workaround fand ich bei http://osdir.com/ml/java.sun.kvm/2003-09/msg00083.html :

If you have more than 26 files,create another package and place the rest 26 files and so on.

Klasse!