java - Proguard 混淆 + getJarEntry

标签 java jar obfuscation proguard

我有一个 jar 文件,其中有一个名为“kaza”的包。这个 jar 里面有一段代码:

JarFile jfile = new JarFile(fileName);
jfile.getJarEntry("kaza/");

当从我的 jar 运行时,此行返回 jarEntry。 当我使用 Proguard 混淆这个 jar 时,这一行返回 null,尽管当我打开混淆的 jar 时,我在那里找到了“kaza”文件夹!

我尝试将其更改为:

jfile.getJarEntry("kaza\\");

jfile.getJarEntry("kaza");

但是没有任何效果!

可能是什么问题? 谢谢,

最佳答案

默认情况下,ProGuard 会从 jar 中删除目录条目。您应该仔细检查是否已指定 -keepdirectories 并且目录条目是否存在于已处理的 jar 中。确保不是 zip 存档查看器显示此类条目,即使它们不存在。如果这仍然不起作用,您可以尝试手动解压缩 jar 并再次压缩,看看是否有区别。

关于java - Proguard 混淆 + getJarEntry,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13123159/

相关文章:

java - JSF 2.x + Spring 3.2 集成?

java - 即使使用 BufferedImage,图形也确实闪烁

java - java中的类路径变量

java - 您是否混淆了您的商业 Java 代码?

gradle - 如何在Gradle中将Launch4J与混淆的jar一起使用

obfuscation - 使用 proguard 混淆后,使用 google guice 注入(inject)不再起作用

java - 对于 Grails 3 应用程序的独立 WAR 中的索引以外的操作,URL 映射被破坏

java - Java 中正确的用户输入

java - 从命令提示符运行 JAR 文件时为什么会出现异常?

java - 如何扩展 jar 文件中的类?