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

项目所在环境:
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.所以取文件的时候还存在你是不是取得 项目的依赖项目中的文件资源

猜你喜欢

转载自blog.csdn.net/jixinhuluwa/article/details/70036921