0

是否可以像在普通文件系统上一样使用 newJava 7 NIO file library遍历 jar 中的目录树?

我有一个目录结构,我正在读取图像,我希望能够以正常方式运行,也可以将其打包为 jar 文件并运行java -jar.

似乎新的 FileSystem 类以及 FileVisitor 应该能够实现这一点,但是关于它如何在 jar 中工作的文档很少。我尝试了以下方法:

private static final FileSystem fileSystem = FileSystems.getDefault();
public static final String workingDir = System.getProperty("user.dir");
Files.walkFileTree(fileSystem.getPath(workingDir, "\res\training\"), new FileVisitor<Path>() {
    ...
    });

这适用于从 IDE 或命令行运行,但是当打包为 jar 时会出现类似于以下内容的错误:

线程“main”中的异常 java.lang.Error:
java.nio.file.NoSuchFileException: C:\Users\ rest of path \ jar_folder \res\training at util.Main.(Main.java:47) 原因:java .nio.file.NoSuchFileException: C:\Users\其余路径\ jar 文件夹\res\training

显然,它试图在 jar 运行所在的目录中查找文件,而不是在 jar 本身内部。

4

0 回答 0