proguar混淆使用总结

本文详细介绍了如何在Eclipse中正确导出Jar包,并使用ProGuard进行代码混淆的方法。包括导出Jar包时需要注意的设置、混淆前后的文件处理流程、配置文件的具体设置以及常见问题解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、在使用eclipse导出jar包的时候,必须勾选对应的add directory entires ,否则导出的jar包放到war包下的WEB-INF/lib时,不能正常运行

2、使用proguard进行混淆

   A)首选选择对应的需要混淆的jar包文件(上面第一步中导出的jar包)

  B)   选择混淆后的jar包文件存放路径和导出的文件名

  C)增加需要依赖的jar包文件(本步最为重要,经常会报很多错误,都是因为导入的jar包中共同实现了一个类,需要非常仔细排除多余的jar包)

  D) 选择shrinking,下所有的都不要选择

E)obfuscation,选择Obfuscate,Use mixed-case class names,flatten package hierarchy, keep attributes

keep parameter names,native method names,.class method name

F)optimization,选择Optimize,romove选项全部选中

G)information,选择对应的jdk版本(Target)

H)process,选择save configurations


3、用文本编辑,打开刚才保存的配置文件(.pro),在-keepparameternames下面增加自己混淆java文件的配置,如:

#解决springmvc不能自动注入的问题
-keepdirectories

#
#    java.lang.ClassFormatError: LVTT entry for 'a' in class file ×× does not match any LVT entry
#    这个貌似是Proguard的bug,使用下面的代码解决
#
-optimizations !code/allocation/variable
# 20171102add end
# 保留单个类start
-keep public class net.test123.filter.SystemBaseFilter {
    <fields>;
    <methods>;
}
-keep public class net.test123.system.module.bean.* {
    <fields>;
    <methods>;
}
# 不混淆实体的字段和方法,jsp的表单里面会有这些属性的值,混淆之后,会出现无法提交表单情况  
-keep class net.test123.**.model.** {
    public private protected <fields>;
    public <methods>;
}

4、先关闭proguard,再打开proguard,导入修改后的pro文件,点击process页签,查看配置信息(view configuration),点击process按钮,等待混淆包的产生。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值