JIMFS não reconhecido pelo ZipFileSystemProvider

Eu tenho um arquivo zip criado emjimfs(google no sistema de arquivos de memória) de uma matriz de bytes. Ao tentar abrir esse arquivo comZipMemoryFileSystem, Recebo um erro que o provedor não é reconhecido. Meu código é o seguinte:

public static void test(byte[] document) {
    try {
         try (FileSystem memoryFileSystem = Jimfs.newFileSystem(Configuration.unix())) {
            Files.write(memoryFileSystem.getPath("/file.zip"), document);
            URI uri = URI.create("jar:" + memoryFileSystem.getPath("/file.zip").toUri());
            Map<String, String> env = Collections.singletonMap("create", "false");
            try (FileSystem zipfs = FileSystems.newFileSystem(uri, env)) {
                //do something                  
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
}

O URI é algo como:jar:jimfs://bb2c779f-d327-4e2f-9841-bd04785f1365/file.zip.

O rastreamento de pilha é:

java.nio.file.FileSystemNotFoundException: Provider "jimfs" not installed
    at java.nio.file.Paths.get(Paths.java:158)
    at com.sun.nio.zipfs.ZipFileSystemProvider.uriToPath(ZipFileSystemProvider.java:97)
    at com.sun.nio.zipfs.ZipFileSystemProvider.newFileSystem(ZipFileSystemProvider.java:119)
    at java.nio.file.FileSystems.newFileSystem(FileSystems.java:337)
    at java.nio.file.FileSystems.newFileSystem(FileSystems.java:287)
    at office.ImfsTest.test(ImfsTest.java:88)
    at office.ImfsTest.main(ImfsTest.java:58)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:95)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
    at java.lang.reflect.Method.invoke(Method.java:508)
    at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:293)
    at java.lang.Thread.run(Thread.java:785)

O jimfs não está listado comFileSystemProvider.installedProviders(). Está em um carregador de classes separadoZipFileSystemProviderrespectivamenteThread.currentThread().getContextClassLoader() vs.ClassLoader.getSystemClassLoader().getParent() paraFileSystemZipProvider.

As impressões dos fornecedores são as seguintes:

IM Provider:com.google.common.jimfs.JimfsFileSystemProvider@ed301b1f IM Scheme:jimfs IM Class Loader:java.net.URLClassLoader@4940e7a2
Installed Provider:sun.nio.fs.LinuxFileSystemProvider@d83a6d85 Scheme:file Class Loader:null
Installed Provider:com.sun.nio.zipfs.ZipFileSystemProvider@110a4ec7 Scheme:jar Class Loader:sun.misc.Launcher$ExtClassLoader@59a155ab

Eu tentei definir os carregadores de classe manualmente com base no jimfsClassLoaderTest exemplo sem sucesso. Estou executando no Linux.

Utilizado o jimfs 1.1 (também experimentado 2.0-SNAPSHOT with fixhttps://github.com/google/jimfs/commit/3299e69f75cf524e6d101d88e8c202c1b24bf25a por questão31)

Como eu poderia ter meu código funcionando?

questionAnswers(1)

yourAnswerToTheQuestion