簡體   English   中英

用Java創建Zip文件系統提供程序

[英]Creating a Zip File System Provider in Java

官方文檔開始 ,我有這個小程序:

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

但是它說

路徑組件應為“ /”

因此,我決定自己編寫路徑:

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

現在它說

java.lang.IllegalArgumentException:授權組件存在

您必須檢查URI語法

 URI = scheme ":" hier-part [ "?" query ] [ "#" fragment ] hier-part = "//" authority path-abempty / path-absolute / path-rootless / path-empty 

如果存在權限,則路徑必須為空或以斜杠(“ /”)開頭。 如果沒有權限,則路徑不能以兩個斜杠字符(“ //”)開頭。

您沒有權限。 您只需要一條絕對路徑。 您的方案也是錯誤的。 從您發布的鏈接中,您實際上想要的jar:<url>如此此處所述 所以

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM