JavaDoc 的Class#getResourceAsStream(String)
内容如下:
查找具有给定名称的资源。搜索与给定类关联的资源的规则由该类的定义类加载器实现。这个方法委托给这个对象的类加载器。
那么以下如何工作:
class AppTest {
private static final Properties p = new Properties();
static {
try {
p.load(AppTest.class.getResourceAsStream(("config.properties")));
} catch (IOException e) {
e.printStackTrace();
}
}
...
}
如果 config.properties 与 AppTest.class 位于同一目录中:
pro/wulfgar/net/on/users/app/{AppTest.class,config.properties}
.
AppTest.class 的类加载器不应该在应用程序类路径(在这种情况下)上寻找它吗?因此 config.properties 应该与pro目录处于同一级别。
也就是说,除非我将资源定义为 ,否则我pro/wulfgar/net/on/users/app/config.properties
无法理解为什么类加载器可以找到资源?