是否可以像在普通文件系统上一样使用 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 本身内部。