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

我如何从jar:file:/C:/Program%20Files/test.jar!/foo/bar转到指向C:/Program Files/test.jar

以下代码适用于我(基于如何从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()) 

你可以这样做。这很有效

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

所需文件=新文件(FilePath [1]);