在我的Maven项目中,我在src / main / resources中有一个xls文件。当我这样阅读时:
InputStream in = new
FileInputStream("src/main/resources/WBU_template.xls");
一切都好。
但是我想使用getResourceAsStream将其作为InputStream读取。当我执行此操作时,无论是否使用斜线,我总会得到NPE。
private static final String TEMPLATEFILE = "/WBU_template.xls";
InputStream in = this.getClass.getResourceAsStream(TEMPLATEFILE);
不管斜线是否存在,或者如果我使用getClassLoader()方法,我仍然会得到一个NullPointer。
我也尝试过这个:
URL u = this.getClass().getResource(TEMPLATEFILE);
System.out.println(u.getPath());
控制台说… / target / classes / WBU_template.xls,然后获取我的NullPointer。
我究竟做错了什么 ?
FileInputStream将从Java进程的工作目录中加载相对于您传递给构造函数的文件路径。
getResourceAsStream()将从应用程序的类路径加载相对的文件路径。
使用.getClass().getResource(fileName)
它时,它会认为fileName的位置与调用类的位置相同。
使用.getClass().getClassLoader().getResource(fileName)
它时,它会认为fileName的位置是根目录-
换句话说,就是bin文件夹。
src/main/resources
使用Class loader载入时,文件应位于
简而言之,您必须根据情况.getClass().getClassLoader().getResource(fileName)
加载文件。
我有一个maven Spring项目,里面有文件。如何在SpringMVC控制器中读取它。 我正在使用 但是is.
我在我的maven项目中的src/main/资源下放置了一个文件,文件名只是temp.txt. 当我试图打开文件时: 我得到一个错误: src/main/资源下的所有文件都放在maven下类路径的根文件夹中。那么为什么程序不能在这里找到文件呢?
我在论坛上搜索了我的问题的答案,但我找不到。我的问题是: 我有两个项目:项目A和项目B。ProjectB使用ProjectA。在ProjectA中,我有两个文件夹:/src/main/resources和/src/test/resource。在ProjectB中,我运行:mvn clean install。我希望,在测试阶段,ProjectB中的类使用/src/test/resources中的资源
我正在为我的maven项目添加一个可执行的jar测试。我已经编辑了pom文件,以使用src/main/resources中的一个主类。但是,当我尝试运行jar时,它找不到我的主类。有什么想法吗?
我有一个目录结构如下的maven模块,我想在中获取的路径 我使用进行了尝试,但它给出了一个空值。 无法获取资源的路径
我为每个生成环境都有一个自定义属性文件夹。我已经为它定义了配置文件并添加了不同的文件夹。它们会被正确地捡起来。但是,src/main/resources中的资源没有被拾取。如果netbeans 8有什么不同的话,我会使用它。我的问题是一旦激活了不同的概要文件,是否需要在概要文件中重新指定主要资源或测试资源?多谢了。 我正在使用Maven开发一个java web项目。有一些web服务的xml文件(h