【问题标题】:Why are there no class files in the JAR file outputted by ProGuard?为什么 ProGuard 输出的 JAR 文件中没有类文件?
【发布时间】:2020-06-10 14:05:46
【问题描述】:

我正在尝试使用 ProGuard 来混淆我的 JAR 文件。

具体来说......我有一个 Java/Spring 网络应用程序。所以我生成了一个 WAR 文件。

我已将我所有的类从 WAR 文件的 /WEB-INF/classes 文件夹复制到一个新的 JAR 文件中。

我启动了 ProGuard GUI 并选择了我的 JAR 文件作为输入。我指定了一个新的 output.JAR 文件。我将所有 /WEB-INF/lib/*.jar 文件添加为“库 jars”。

我接受 ProGuard GUI 中的所有默认设置,当我单击“处理!”时在最后一页,它经过处理......有一个“库类的重复定义”注释列表(我很确定我可以忽略?)。

然后生成输出 JAR。但是输出的 JAR 里面只有三个类文件……里面的文件是我写的简单的小测试类,用来做简单的代码测试,不要以任何方式触及应用程序的其余部分。

我的 Web 应用程序的所有类文件都不在输出 JAR 文件中。

我错过了什么?

【问题讨论】:

    标签: java proguard war obfuscation


    【解决方案1】:

    ProGuard 期望输入类的文件名与其完全限定的类名相对应,没有任何前缀,如“WEB-INF/classes”。您可能会在日志中看到很多关于它的警告。您可以通过将类放在“WEB-INF/lib”中的 jar 中来解决它。

    参见 ProGuard 手册 > 疑难解答 > Warning: class file ... unexpectedly contains class ...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-05
      • 2022-12-15
      • 2016-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多