2010-06-17 80 views

回答

9

到类的关系:

  • 类的包被考虑 - 如果你给的类foo.bar.SomeClass呼叫getResourceAsStream("baz.txt")它会寻找/foo/bar/baz.txt
  • 的类加载器首先要考虑到资源 - 如果它是一个静态方法,它将如何知道要查找哪些jar文件(etc)?还有更多的生活比系统类加载器
1

它只是给文件,该文件是在jar文件的InputStream ...

不正确的。并非所有类加载器都从常规JAR文件加载资源。

  • 一些类加载器从目录加载。
  • 一些类加载器从网络加载。
  • 一些类加载器从多个来源加载。

所有这些复杂的是从你的时候,你在这种情况下,通过Class使用ClassLoader API隐藏。

...并且与Class类没有关系。

错误。请参阅@Jon Skeet的回答。请注意,调用Class.getResourceAsStream(String)会提供与该类属于同一安全上下文的资源。如果使用多个类加载器/安全上下文,这可能非常重要。

相关问题