[英]How to traverse a ZIP file in Java using “Zip File System Provider”?
[英]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.