gpt4 book ai didi

java - 如何从 jar :file URL? 构建路径

转载 作者:搜寻专家 更新时间:2023-10-31 19:38:32 24 4
gpt4 key购买 nike

如何构造一个 Path 到一个 jar:file URL?

调用 Paths.get(new URI("jar:file:/C:/foo.jar!/bar.html")) 抛出 FileSystemNotFoundException(注意文件系统丢失,而不是文件本身)。

据我所知,这两个文件都存在。有什么想法吗?

最佳答案

Paths 尝试解析包含您的PathFileSystem。 (实际上这可能是一个实现细节。规范只是说明它将检查默认的 FileSystem。)如果您还没有注册/创建这样的 FileSystem,它会找不到它。

您将从 jar 文件创建一个新的 FileSystem 并通过该 FileSystem 访问条目 Path

Path path = Paths.get("C:/foo.jar");
URI uri = new URI("jar", path.toUri().toString(), null);

Map<String, String> env = new HashMap<>();
env.put("create", "true");

FileSystem fileSystem = FileSystems.newFileSystem(uri, env);
Path file = fileSystem.getPath("bar.html");
System.out.println(file);

然后你可以使用

Paths.get(new URI("jar:file:/C:/foo.jar!/bar.html"))

使用完 FileSystem 后注意正确关闭它。

有关 ZipFileSystemProvider 的更多信息,请参阅 here .

关于java - 如何从 jar :file URL? 构建路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25396918/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com