Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.programmer > #9317
| From | Philipp Kraus <philipp.kraus@flashpixx.de> |
|---|---|
| Newsgroups | comp.lang.java.programmer |
| Subject | Re: get path of a Jar file |
| Date | 2011-10-30 18:49 +0100 |
| Organization | 1&1 Internet AG |
| Message-ID | <j8k2o4$d5e$1@online.de> (permalink) |
| References | <j7u3th$9dr$1@online.de> <m4tgn8-773.ln1@news.simpsonst.f2s.com> |
On 2011-10-24 22:07:18 +0200, Steven Simpson said:
> On 22/10/11 10:54, Philipp Kraus wrote:
>> String l_jarfile =
>> Class.forName("class_within_the_jar").getResource("").toString();
>> l_jarfile = l_jarfile.substring(9,
>> l_jarfile.lastIndexOf(".jar!")) + ".jar";
>>
>> This does not work on MS Windows systems (unix and OSX work correct
>> with this code).
>> If the Jar files is stored under a path like "C:\Users\myuser\Java
>> Files\myjar.jar" (with a space)
>> the JarFile-Object can't locate the file, because the space within the
>> directory is changed to %20
>
> Leaving aside the good questions of why, and whether these magic
> constants are a good thing, I will address the decoding of % sequences:
> Create a java.net.URI from the string, then create a java.io.File from
> the URI.
>
> import java.net.*;
> import java.io.*;
>
> public class GetPath {
> public static void main(String[] args) throws Exception {
> Class<?> clazz = Class.forName(args[0]);
> URL clazzRes = clazz.getResource("");
> String loc = clazzRes.toString();
> System.out.println("Resource: " + loc);
> URI stripped =
> URI.create(loc.substring(4, loc.lastIndexOf(".jar!") + 4));
> System.out.println("Stripped: " + stripped);
> File result = new File(stripped);
> System.out.println("Result: " + result);
> }
> }
>
> Lots of result checking omitted.
Thanks, the URI option is imho the best solution
Phil
Back to comp.lang.java.programmer | Previous | Next — Previous in thread | Find similar
get path of a Jar file Philipp Kraus <philipp.kraus@flashpixx.de> - 2011-10-22 11:54 +0200
Re: get path of a Jar file Lew <lewbloch@gmail.com> - 2011-10-22 08:52 -0700
Re: get path of a Jar file Martin Gregorie <martin@address-in-sig.invalid> - 2011-10-22 21:19 +0000
Re: get path of a Jar file Steven Simpson <ss@domain.invalid> - 2011-10-24 21:07 +0100
Re: get path of a Jar file Philipp Kraus <philipp.kraus@flashpixx.de> - 2011-10-30 18:49 +0100
csiph-web