混淆后,Proguard Helloworld示例应用程序无法正常工作

时间:2018-03-07 19:02:41

标签: java proguard

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 

1 个答案:

答案 0 :(得分:0)

您必须保留应用程序的入口点,以便执行环境可以启动它。如果我理解正确,您正在创建一个具有main(String[])方法的标准Java程序?然后,您需要添加以下规则(另请参阅ProGuard手册):

 -keep class com.proguard.sample.HelloWorld {
    static void main(java.lang.String[]);
 }