e2

滴滴侠,fai抖

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

类路径

类路径classpath:指当前类加载器能加载到的所有jar包。

类路径查找

在类路径下查找:指在当前类加载能加载到的所有jar包中查找。

查找类:在类路径下查找一个类,编历所有jar包查找一个类,找到就返回。即使这个类在多个jar包中都有。先找到谁就返回谁。

查找资源:在类路径下查找一个资源,编历所有jar包查找一个资源,找到就返回。即使这个资源在多个jar包中都有。先找到谁就返回谁。

getClass().getResource("path")

当path以/开头,如/a/b/c.properties时,查找的路径为: classpath路径/path。
当path不以/开头时,如c.properties,查找的路径为:当前调用类的路径/path。

如:

则,代码为:
InputStream inputStream3= getClass().getResource("/com.phl.amodel/a.properties").openStream();
查找路径计算: classpath路径/path ,即:classpath/com.phl.amodel/a.properties

getClassLoader().getResource("path")

只在当前类路径下寻找: classpath:path
如a.properties放在

代码:
InputStream inputStream2= getClass().getClassLoader().getResource("com.phl.amodel/a.properties").openStream();
(不能用/开头)
查找路径计算:path=com.phl.amodel/a.properties
则查找路径为 classpath/com.phl.amodel/a.properties

当多个jar中都含有要查找的资源时,应该从哪个jar中查找

根据jar包的先后顺序加载满足path的资源
那jar包的顺序是怎么的呢?
如果是maven工程,则以在pom中配置的先后为准,如有下面配置文件:

则先在useresource工程中根据path路径查找,然后在zmodel,amodel,test1,designmodel中查找。

posted on 2018-03-20 22:48  纯黑Se丶  阅读(115)  评论(0编辑  收藏  举报