java-类路径下加载

类路径

类路径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中查找。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值