指定要处理的应用程序的输入 jars(或 aars、wars、ears、zip、apks 或目录)。这些 jar 中的类文件将被处理并写入输出 jar。默认情况下,任何非类文件都将被复制而不做任何更改。请注意任何临时文件(例如由 IDE 创建的),尤其是当您直接从目录中读取输入文件时。可以过滤类路径中的条目,如过滤器部分所述。为了更好的可读性,可以使用多个 -injars 选项指定类路径条目。
指定要处理的应用程序的库 jars(或 aars、wars、ears、zip、apks 或目录)。The files in these jars will not be included in the output jars. The specified library jars should at least contain the class files that are extended by application class files. Library class files that are only called needn't be present
,尽管它们的存在可以改善优化步骤的结果。可以过滤类路径中的条目,如过滤器部分所述。为了更好的可读性,可以使用多个 -libraryjars 选项指定类路径条目。请注意,在查找库类时不考虑为运行 ProGuard 设置的引导路径和类路径。This means that you explicitly have to specify the run-time jar that your code will use.
尽管这看起来很麻烦,但它允许您处理针对不同运行时环境的应用程序。例如,您可以处理 J2SE 应用程序以及 JME midlets 或 Android 应用程序,只需指定适当的运行时 jar。
我的结果`
- -injars MyApp.jar
- -libraryjars ${java.home}/lib/rt.jar
- -libraryjar ${java.home}/lib/jsse.jar
- -libraryjar ${java.home}/lib/jce.jar
至于第三部分库,有一些区别。
指定的库 jar 至少应该包含由应用程序类文件扩展的类文件。仅被调用的库类文件不需要存在
,所以第三部分库可能不需要设置。