Java 用Main方法混淆类名
我用它来混淆可执行文件Java 用Main方法混淆类名,java,proguard,Java,Proguard,我用它来混淆可执行文件.jar文件。当我使用带有main方法的类反编译代码时,它们仍然有它们的原始名称。这是由于 -keepclasseswithmembers public class * { public static void main(java.lang.String[]); } 在默认配置中 如果我删除这个,ProGuard将不会处理。有没有办法用main方法混淆类名,或者有充分的理由反对这样做?如果用main方法混淆类名,则不能再调用该类来运行jar 理论上,您可以修改ja
.jar
文件。当我使用带有main方法的类反编译代码时,它们仍然有它们的原始名称。这是由于
-keepclasseswithmembers public class * {
public static void main(java.lang.String[]);
}
在默认配置中
如果我删除这个,ProGuard将不会处理。有没有办法用main方法混淆类名,或者有充分的理由反对这样做?如果用main方法混淆类名,则不能再调用该类来运行jar 理论上,您可以修改jar中的
MANIFEST.MF
,以引用模糊的类名,但我不确定这样做的好处,因为此时调用的内容非常清楚
此外,您永远不能混淆main(String[])
方法名称本身,否则java根本无法找到并运行您的应用程序。这是一个很好的反对理由:)
如果希望混淆其余的类成员,但保留类名和main方法本身,可以使用
-keep public class mypackage.MyMain {
public static void main(java.lang.String[]);
}
按照