用Java创建Zip文件系统提供程序

时间:2015-03-05 03:33:56

标签: java filesystems

offical docs,我有这个小程序:

import java.util.*;
import java.io.File;
import java.net.URI;
import java.nio.file.*;

public class ZipFSPUser {
    public static void main(String [] args) throws Throwable {

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

        URI uri = (new File(args[0])).toURI();
        FileSystem fs = FileSystems.newFileSystem(uri, env);

    }
}

我在Mac终端中称它为

java -jar app.jar path/to/some/file.zip

但它说

  

路径组件应为&#39; /&#39;

所以我决定自己写路径:

URI uri = URI.create("file://path/to/my/file.zip");

现在它说

  

java.lang.IllegalArgumentException:存在权限组件

1 个答案:

答案 0 :(得分:1)

您必须查看URI syntax

URI         = scheme ":" hier-part [ "?" query ] [ "#" fragment ]

hier-part   = "//" authority path-abempty
              / path-absolute
              / path-rootless
              / path-empty

  

当存在权限时,路径必须为空或以   斜杠(&#34; /&#34;)字符。当权力不存在时,路径   不能以两个斜杠字符开头(&#34; //&#34;)。

你没有权威。你只想要一个绝对的路径。你的计划也错了。在您发布的链接中,您实际上需要herehere所述的jar:<url>。所以

URI uri = URI.create("jar:file:/path/to/my/file.zip");