【问题标题】:Can I extract a file from a jar that is 3 directories deep?我可以从 3 个目录深的 jar 中提取文件吗?
【发布时间】:2010-09-25 14:05:00
【问题描述】:

我有一个 jar 文件,其中有一个名为“client.ts”的文件(在 ZipGenius 中查看时)“/com/something/messaging”。当我这样做时

JarFile jarFile = new JarFile("Client.jar");
JarEntry zipFile = jarFile.getJarEntry("client.ts");

找不到“client.ts”文件。如果我将文件打包在“/resources/”中,它可以找到它。 JarFile.getEntry() 是否只向下钻取一个目录? getJarEntry() 的 javadoc 简单地说:返回给定条目名称的 ZipEntry,如果未找到则返回 null。

【问题讨论】:

    标签: java jar


    【解决方案1】:

    JAR 中条目的完整路径应该有效:

    JarEntry zipFile = jarFile.getJarEntry("com/something/messaging/client.ts");
    

    【讨论】:

    • 其实字符串应该是“com/something/messaging/client.ts”
    • 如果它只是在资源/目录中,你知道它为什么有效吗?一定是java只搜索一个目录。
    • @darrickc.blogspot.com 那一点我很模糊。很高兴你解决了。
    • Zip(因此是 jar)文件实际上并没有目录的概念。它只是带有斜杠的条目名称。您甚至可以在名称中包含“/../”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-03
    • 1970-01-01
    • 2022-11-17
    • 2017-02-04
    • 2011-07-02
    • 1970-01-01
    相关资源
    最近更新 更多