关于getClass().getResourceAsStream(path)跨项目取文件资源返回值为null的报错
2017-04-10 21:09
375 查看
项目所在环境:
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.所以取文件的时候还存在你是不是取得项目的依赖项目中的文件资源
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.所以取文件的时候还存在你是不是取得项目的依赖项目中的文件资源
相关文章推荐
- 关于android 中java 的.class.getResourceAsStream()返回值为null
- 关于Object.class.getResourceAsStream方法读取文件的使用
- getClassLoader().getResourceAsStream()去哪里找资源文件
- 新建java项目使用this.classLoader.getResourceAsStream方法导入xml文件时报找不到文件原因
- 对Class.getResourceAsStream和ClassLoader.getResourceAsStream方法所使用的资源路径的解
- 得到配置资源的一般做法--CLASS.getResourceAsStream(String resource)
- Class.getResourceAsStream(path)与Thread.currentThread().getContextClassLoader().getResourceAsStream
- getClass().getResourceAsStream() .获取配置文件的方法 .
- java中getResourceAsStream(String path)与getClassLoader.getResourceAsStream(String path)
- class getResourceAsStream 和 classloader getResourceAsStream获取资源的不同
- ClassLoader.getResourceAsStream(name);获取配置文件的方法
- Java中获取classpath路径下的资源文件【ClassLoader.getSystemResource("")获取当前ClassPath的绝对URI路径,还可以以流的形式获取文件】
- 关于class.getResourceAsStream(String name)与 class.getClassLoader().getResourceAsStream(String name)的路径
- ClassLoader.getResourceAsStream(name);获取配置文件的方法
- java取得项目工程---获取文件的相对路径问题---getResource()和getResourceAsStream以及路径问题
- java取得项目工程---获取文件的相对路径问题---getResource()和getResourceAsStream以及路径问题
- 关于ClassLoader中getResource与getResourceAsStream的疑问
- 相对路径获取JAVA配置文件Class.getResourceAsStream() & ClassLoader的getResourceAsStream()
- getClass().getResourceAsStream() .获取配置文件的方法
- 关于class和classLoader的getResourceAsStream和getResource方法路径问题