如何将"jar:file"URI转换为Jar文件的路径?

Gil*_*ili 5 java uri

如何从去jar:file:/C:/Program%20Files/test.jar!/foo/bar到一个File指向C:/Program Files/test.jar

Gil*_*ili 11

以下代码适用于我(基于如何从jar中获取jar URL:包含"!"的URL和jar中的特定文件?):

URL url = new URL("jar:file:/C:/Program%20Files/test.jar!/foo/bar");
JarURLConnection connection = (JarURLConnection) url.openConnection();
File file = new File(connection.getJarFileURL().toURI())
Run Code Online (Sandbox Code Playgroud)


小智 6

你可以这样做。这有效

ClassLoader loader = this.getClass().getClassLoader();
URL url = loader.getResource("resource name");
String[] filePath = null;
String protocol = url.getProtocol();
if(protocol.equals("jar")){
    url = new URL(url.getPath());
    protocol = url.getProtocol();
}
if(protocol.equals("file")){
    String[] pathArray = url.getPath().split("!");
    filePath = pathArray[0].split("/",2);
}
File required = new File(FilePath[1]);
Run Code Online (Sandbox Code Playgroud)