Reputation: 17413
When using Class.getResource()
and supplying a rather common resource name, like "license.html"
, Java may load a "license.html"
resource from another JAR file which is listed earlier in the CLASSPATH, but may be completely unrelated to my application. Is there a way to force the ClassLoader to first try to load the resource from the same JAR file which my class is in and only if not found, look in other JARs on the CLASSPATH?
Upvotes: 4
Views: 2196
Reputation: 168815
..common resource name, like "license.html"'
A good reason to give it an uncommon path, for instance according to the package
name.
E.G. "/com/our/app/license.html"
is unlikely to collide with any other license.html
Upvotes: 4
Reputation: 78579
Alternatively you could use the JarURLConnection if you know the exact jar in which your file resides:
jar:<url>!/{entry}
Upvotes: 4