在JAR src / main / resources中找不到文件

时间:2017-11-23 15:24:36

标签: spring spring-boot

我在Spring Boot项目的src / main / resources中有一个文件。我使用以下代码在运行时加载它:

ClassLoader classLoader = getClass().getClassLoader();
File file = new File(classLoader.getResource("datafile.xls").getFile());

当我从IDE运行此应用程序时,一切正常。但是,当我运行JAR时,我得到:

FileNotFoundException: file:\C:\myFolder\myApp.jar!\BOOT-INF\classes!\datafile.xls

我认为这个文件会从类路径加载但看起来不是。

我正在使用 mvn clean install 生成一个jar。

2 个答案:

答案 0 :(得分:0)

这样的东西会起作用

InputStream in = getClass().getResourceAsStream("/datafile.xls");

之后不确定您想要对InputStream做什么,请参阅FileUtilsIOUtils以了解之后的处理方法。

Apache commons依赖看起来像

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-io</artifactId>
    <version>1.3.2</version>
</dependency>

答案 1 :(得分:0)

对于春季项目试试这个

ClassPathResource resource = new ClassPathResource("datafile.xls");
InputStream inputStream = resource.getInputStream();