JAR文件的Proguard混淆

4
我知道如何混淆可执行的jar文件,因为它具有主类。但是我正在尝试创建我的API(已经完成),并且只需要混淆代码。问题在于,每当我尝试使用Proguard(一个众所周知的Java混淆器)混淆jar文件时,它会给我关于“keep”方面的错误。我正在从Proguard中运行proguard-gui,并且在Eclipse中,我将项目导出为普通的jar文件(非可执行),并且正在尝试混淆该jar文件。此外,我也没有在我的jar文件中包含.classpath和.project文件。如果有人可以帮助/指导我如何在Proguard中混淆非可执行jar文件,那将非常有用和感激。谢谢。
注:我正在使用Proguard的GUI进行混淆,与命令行无关。
问题截图: enter image description here
2个回答

4

在Proguard的配置文件中,您需要指定要保留哪些类,否则Proguard将会减少所有内容。最常见的保留行看起来像:

-keep my.applications.package.*

或者

-keep my.applications.package.MainClass

你可以在Proguard网页上找到配置文件的示例。

虽然没有主类,但它是一个外部库。:P 这就是为什么我有点困惑该怎么做。 - Josh M
我想说的是,我的任何类中都没有主方法。 - Josh M
1
在Proguard页面上也有一个示例,位于“8. 典型库”下面。 - evilcandybag
我尝试过这个,它混淆了一个没有第三方库构建的jar文件中的公共方法和类。尽管使用了示例配置文件,但它似乎将我的jar文件视为应用程序而不是库。 - Brian Reinhold

3

Cfr ProGuard手册 > 实例 > 一个典型的库

GUI界面有一个选框,用于处理库文件。


这个参考资料很受欢迎。我没有看到任何这样的复选框,请问你能分享一下图片或参考资料吗? - Jugal Panchal

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接