Given hello.jar, which is compiled with maven, I want to access a resource located under folder/file.file. However I don\'t know how to get the URL of the current JAR I am i
You can find a jar's resources by using:
String resRelativePath = "folder/thing.jpg";
URL resUrl = this.getClass().getResource(resRelativePath);
This works for me:
URL url = this.getClass().getProtectionDomain().getCodeSource().getLocation();
String jarPath = URLDecoder.decode(url.getFile(), "UTF-8");
jarPath
then contains the complete path to the jar file where the class with that code is located.
Note the "detour" through URLDecoder, otherwise you'll get a filename containing %20 if the jar files is located in a directory that contains spaces.