1)用com.proguard.sample.HelloWorld.java创建了一个guardsample-0.1.local.jar,并在控制台上执行了打印Hello world的jar文件
2)在本地安装了proguard并对guardsample-0.1.local.jar进行了模糊处理
3)尝试运行混淆的jar,我得到一个错误,因为在反编译代码中找不到主要方法
4)使用反编译器查看类,我没有看到主要方法。请指教
5)Proguard配置很简单
enter code here
-injars guardsample-0.1.local.jar
-outjars guardsample-0.1.local.out.jar
-libraryjars 'C:\Program Files\Java\jre1.8.0_161\lib\rt.jar'
-dontoptimize
-classobfuscationdictionary
'C:\PROGUARD\artifcats\obfuscationdictionary.txt'
-packageobfuscationdictionary
'C:\PROGUARD\artifcats\obfuscationdictionary.txt'
-flattenpackagehierarchy 'C:\PROGUARD\artifcats\obfuscationdictionary.txt'
-repackageclasses
-keepparameternames
adaptclassstrings
-keepclasseswithmembers
答案 0 :(得分:0)
您必须保留应用程序的入口点,以便执行环境可以启动它。如果我理解正确,您正在创建一个具有main(String[])
方法的标准Java程序?然后,您需要添加以下规则(另请参阅ProGuard手册):
-keep class com.proguard.sample.HelloWorld {
static void main(java.lang.String[]);
}