【发布时间】:2011-11-04 18:30:08
【问题描述】:
如何从jar:file:/C:/Program%20Files/test.jar!/foo/bar 转到指向C:/Program Files/test.jar 的File?
【问题讨论】:
如何从jar:file:/C:/Program%20Files/test.jar!/foo/bar 转到指向C:/Program Files/test.jar 的File?
【问题讨论】:
以下代码适用于我(基于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())
【讨论】:
你可以这样做。这行得通
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);
}
所需文件 = new File(FilePath[1]);
【讨论】: