mirror of
https://github.com/HMCL-dev/HMCL.git
synced 2025-09-13 05:46:59 -04:00
Fixes FileSystemNotFoundException in createZipFileSystem
This commit is contained in:
parent
3a294e354a
commit
17f71eaa21
@ -19,11 +19,10 @@ package org.jackhuang.hmcl.util;
|
|||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.net.URI;
|
|
||||||
import java.nio.file.FileSystem;
|
import java.nio.file.FileSystem;
|
||||||
import java.nio.file.FileSystems;
|
|
||||||
import java.nio.file.Files;
|
import java.nio.file.Files;
|
||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
|
import java.nio.file.spi.FileSystemProvider;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
@ -35,6 +34,11 @@ import java.util.Optional;
|
|||||||
*/
|
*/
|
||||||
public final class CompressingUtils {
|
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() {
|
private CompressingUtils() {
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -62,7 +66,7 @@ public final class CompressingUtils {
|
|||||||
env.put("encoding", encoding);
|
env.put("encoding", encoding);
|
||||||
if (useTempFile)
|
if (useTempFile)
|
||||||
env.put("useTempFile", true);
|
env.put("useTempFile", true);
|
||||||
return FileSystems.newFileSystem(URI.create("jar:" + zipFile.toUri()), env);
|
return ZIPFS_PROVIDER.newFileSystem(zipFile, env);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
x
Reference in New Issue
Block a user