我正在尝试使用 ProGuard 来混淆我的 JAR 文件。
具体来说...我有一个 Java/Spring Web 应用程序。所以我生成了一个 WAR 文件。
我已将 WAR 文件的/WEB-INF/classes 文件夹中的所有类复制到新的 JAR 文件中。
我启动了 ProGuard GUI 并选择了 JAR 文件作为输入。我指定了一个新的output.JAR 文件。我将所有/WEB-INF/lib/*.jar 文件添加为“库 jar”。
当我单击“处理!”时,我接受 ProGuard GUI 中的所有默认设置。在最后一页上,它经历了处理......有一个“库类的重复定义”注释列表(我很确定我可以忽略它?)。
然后生成输出 JAR。但输出 JAR 中只有三个类文件...其中的文件是我编写的简单的小测试类,用于执行简单的代码测试,并且不要以任何方式触及应用程序的其余部分。
输出 JAR 文件中没有我的 Web 应用程序的类文件。
我错过了什么?
最佳答案
ProGuard 希望输入类的文件名与其完全限定的类名相对应,不带任何前缀,例如“WEB-INF/classes”。您可能会在日志中看到很多有关它的警告。您可以通过将类放入“WEB-INF/lib”中的 jar 中来解决该问题。
请参阅 ProGuard 手册 > 故障排除 > Warning: class file ... unexpectedly contains class ...
关于java - 为什么ProGuard输出的JAR文件中没有class文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62305584/