Как преобразовать URI "jar: file" в путь к файлу Jar? - PullRequest
5 голосов
/ 04 ноября 2011

Как перейти от jar:file:/C:/Program%20Files/test.jar!/foo/bar к File, который указывает на C:/Program Files/test.jar?

Ответы [ 2 ]

11 голосов
/ 04 ноября 2011

У меня работает следующий код (на основе Как мне получить только jar-URL из jar: 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())
4 голосов
/ 14 сентября 2015

Вы можете сделать это. Это работает

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...