关于getClass().getResourceAsStream(path)跨项目取文件资源返回值为null的报错

这篇博客讨论了在Java项目中使用`getClass().getResourceAsStream(path)`方法跨项目获取资源文件时遇到的返回null问题。文章解释了该方法的工作原理,包括path的两种写法及其对应的查找路径。作者通过分析classpath和项目的构建路径,揭示了当项目A依赖项目B时可以成功获取资源,而项目C没有依赖项目D时会返回null的原因。最终解决方案是确保目标文件所在的项目被正确地作为依赖添加到调用项目的classpath中。
摘要由CSDN通过智能技术生成
项目所在环境:
maven,分模块项目,存在模块之间的依赖
1.关于getClass().getResourceAsStream(path)方法的介绍
getResourceAsStream是一个取资源的方法,返回一个InputStream类型的实例
path有两种写法:
<1>.如果path已“/”开头,那么从 classpath根目录获取
<2>.如果不是“/”开头,那么从 当前类所在目录下获取
2.classpath的介绍
classpath就是java文件的编译目录
右键项目->properties->java build path->source

就是这个目录下
3.所以结合以上两点,运行期间,如果path以“/”开头,那么从上图的目录下开始找,如果path不以“/”开头,那么找这个目录的子目录,就是当前java文件编译变成class文件后所在的目录下找
4.我们的项目是项目A,取项目B下的某个文件,A取B之后成功返回了值
当当我做另一个项目的时候,项目C去取项目D下面的文件资源就一直返回为null,生成不了InputStream,最后发下是依赖的问题。以为项目A添加了项目B的依赖,所以成功返回
但我的项目C并没有添加项目D的依赖,所以返回为null,添加依赖红后,成功
5.所以取文件的时候还存在你是不是取得 项目的依赖项目中的文件资源

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值