简体   繁体   中英

How do I convert a “jar:file” URI to the path of Jar file?

如何从去jar:file:/C:/Program%20Files/test.jar!/foo/barFile指向C:/Program Files/test.jar

The following code works for me (based on How do I get just the jar URL from a jar: URL containing a "!" and a specific file in the 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())

You can do this.This works

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]);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM