【发布时间】:2019-11-22 01:33:14
【问题描述】:
当我的应用程序打包为 JAR 时,我无法访问目标文件夹“images”。 我不是在获取单个文件后,我想要的是“图像”文件夹中所有 .jpg 文件的列表。
我试过这个:
URI uri = getClass().getClassLoader.getResource("images").toURI();
这会返回:jar:file:/C:/test-1.0-SNAPSHOT.jar!/BOOT-INF/lib/core-1.0-SNAPSHOT.jar!/images
然后我尝试创建一个流来迭代这样的文件:
FileSystem fs = FileSystems.newFilesSystem(uri, Collections.emptyMap());
Path p = fs.getPath("images");
Files.walk(p).forEach(path -> System.out.println(path));
这只会给 med 一个 FileNotFoundException。
那么,如何访问嵌套 JAR 中的“images”文件夹?
编辑:这不是重复的:How to list the files inside a JAR file?。我已经尝试了那里的所有东西。不同之处在于我在另一个 JAR 内有一个 JAR,嵌套 JAR。我认为这就是造成问题的原因。
【问题讨论】:
-
我写了一个答案,但没有及时发布。你可以在这里看到它:pastebin.com/bViDmy53
-
@lino-says-reinstate-monica 可以请您删除重复的标签,因为这是错误的吗?