Java如何从jar文件中获取资源“文件夹”?

我在项目的根目录中有一个资源文件夹/程序包,我“不想”加载某个文件。如果我想加载某个文件,我将使用class.getResourceAsStream,我会很好的!我实际上想要做的是在资源文件夹中加载一个“文件夹”,循环访问该文件夹中的文件,并获取每个文件的流,并读取内容…假设在运行时之前未确定文件名… 我该怎么办?有没有一种方法可以获取jar文件中“文件夹”中文件的列表?请注意,带有资源的Jar文件与从中运行代码的Jar文件相同。

提前致谢…

回答:

最后,我找到了解决方案:

final String path = "sample/folder";

final File jarFile = new File(getClass().getProtectionDomain().getCodeSource().getLocation().getPath());

if(jarFile.isFile()) { // Run with JAR file

final JarFile jar = new JarFile(jarFile);

final Enumeration<JarEntry> entries = jar.entries(); //gives ALL entries in jar

while(entries.hasMoreElements()) {

final String name = entries.nextElement().getName();

if (name.startsWith(path + "/")) { //filter according to the path

System.out.println(name);

}

}

jar.close();

} else { // Run with IDE

final URL url = Launcher.class.getResource("/" + path);

if (url != null) {

try {

final File apps = new File(url.toURI());

for (File app : apps.listFiles()) {

System.out.println(app);

}

} catch (URISyntaxException ex) {

// never happens

}

}

}

第二个块仅在IDE上运行应用程序时有效(不适用于jar文件),如果不喜欢,可以将其删除。

以上是 Java如何从jar文件中获取资源“文件夹”? 的全部内容, 来源链接: utcz.com/qa/421992.html

回到顶部