我在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。
答案 0 :(得分:0)
这样的东西会起作用
InputStream in = getClass().getResourceAsStream("/datafile.xls");
之后不确定您想要对InputStream做什么,请参阅FileUtils和IOUtils以了解之后的处理方法。
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();