问题
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?
回答1:
Alternatively you could use the JarURLConnection if you know the exact jar in which your file resides:
jar:<url>!/{entry}
回答2:
..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
来源:https://stackoverflow.com/questions/10499594/load-resource-from-classs-own-jar-file