2
0
mirror of https://github.com/HMCL-dev/HMCL.git synced 2025-02-23 17:19:44 +08:00

Fixes FileSystemNotFoundException in createZipFileSystem

This commit is contained in:
yushijinhun 2018-08-09 11:32:07 +08:00
parent 3a294e354a
commit 17f71eaa21
No known key found for this signature in database
GPG Key ID: 5BC167F73EA558E4

View File

@ -19,11 +19,10 @@ package org.jackhuang.hmcl.util;
import java.io.File;
import java.io.IOException;
import java.net.URI;
import java.nio.file.FileSystem;
import java.nio.file.FileSystems;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.spi.FileSystemProvider;
import java.util.HashMap;
import java.util.Map;
import java.util.Optional;
@ -35,6 +34,11 @@ import java.util.Optional;
*/
public final class CompressingUtils {
private static final FileSystemProvider ZIPFS_PROVIDER = FileSystemProvider.installedProviders().stream()
.filter(it -> "jar".equalsIgnoreCase(it.getScheme()))
.findFirst()
.orElseThrow(() -> new IllegalStateException("Zipfs not supported"));
private CompressingUtils() {
}
@ -62,7 +66,7 @@ public final class CompressingUtils {
env.put("encoding", encoding);
if (useTempFile)
env.put("useTempFile", true);
return FileSystems.newFileSystem(URI.create("jar:" + zipFile.toUri()), env);
return ZIPFS_PROVIDER.newFileSystem(zipFile, env);
}
/**