如何获取JAR文件中的资源文件列表

时间:2017-07-05 10:18:30

标签: java file jar resources getresource

我知道之前已经问过这个问题,但我找不到一个似乎是事实上这样做的答案。

我只想列出打包在JAR文件中特定文件夹中的所有资源文件。

JAR文件包含一个名为variants的文件夹,里面是我要列出的未知数量的JSON文件。

最初我试过这个:

    File[] files = new File(getClass().getClassLoader().getResource("variants").getPath()).listFiles();

这在Eclipse中运行程序时有效,但在从命令行运行JAR文件时却没有,因为路径返回:

file:/dev-root/target/my-app.jar!/variants

使用this回答我能够让它工作,但它似乎过于复杂,它不是被接受的甚至是最受欢迎的答案。是否有一种直接的方式来实现我想要的目标?

修改

使用this回答我产生了以下内容:

JarFile jar = new JarFile("target/myapp.jar");
Enumeration<JarEntry> entries = jar.entries();

while (entries.hasMoreElements())
{
    JarEntry entry = entries.nextElement();

    if (!entry.isDirectory() && entry.getName().contains("variants"))
    {
        // add name to files []
    }
}

是否可以使用此技术一次性获取所有文件的列表?  例如。使用像listFiles这样的东西。

0 个答案:

没有答案
相关问题