4

当使用Class.getResource()和提供一个相当常见的资源名称时,如"license.html",Java 可能会从另一个 JAR 文件加载"license.html"资源,该文件在 CLASSPATH 中前面列出,但可能与我的应用程序完全无关。有没有办法强制 ClassLoader首先尝试从我的类所在的同一个 JAR 文件中加载资源,只有在没有找到的情况下,才查看 CLASSPATH 上的其他 JAR?

4

2 回答 2

4

或者,如果您知道文件所在的确切 jar,则可以使用JarURLConnection :

jar:<url>!/{entry}
于 2012-05-08T13:33:58.250 回答
3

..common 资源名称,例如“license.html”'

一个很好的理由给它一个不常见的路径,例如根据package名称。
EG "/com/our/app/license.html"不太可能与任何其他碰撞license.html

于 2012-05-08T13:43:52.453 回答