2009-10-19 58 views
1

我的应用程序jar包含swing-layout.jar中的类,其中包含用于java 1.5的免费布局管理器。在混淆过程中,我得到了很多警告,如Proguard obfuscate Fat jar

 
[proguard] Note: org.jdesktop.layout.SwingLayoutStyle accesses a field 'INDE 
NT' dynamically                
[proguard]  Maybe this is program field 'org.jdesktop.layout.LayoutStyl 
e { int INDENT; }' 

我想proguard的独自离开org.jdesktop类,并摆脱了警告,我想

 
     -keeppackagenames org.jdesktop.* 

,但没有奏效?

回答

2

你想要的,我想,

-keep org.jdesktop.** 

注意两星。来自documentation

* matches any part of a name not containing the package separator or directory separator. 
** matches any part of a name, possibly containing any number of package separators or directory separators. 

-keeppackagenames只是让...包名!你想要的是 - 保留的名称。

+0

我注意到,在问这个问题后,**产生了相同的错误信息。 – 2009-10-20 00:42:20

+0

噢...你想要的是,不是-keeppackagenames。我已编辑来反映这一点。 – 2009-10-20 12:43:18

9

老问题,但

-keep org.jdesktop.**

没有使用ProGuard 4.6在这里工作 - 需要补充:

-keep class org.jdesktop.**

以防有人绊倒在这个问题上,就像我一样。