从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:存在权限组件
答案 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;)。
你没有权威。你只想要一个绝对的路径。你的计划也错了。在您发布的链接中,您实际上需要here和here所述的jar:<url>
。所以
URI uri = URI.create("jar:file:/path/to/my/file.zip");