从文件夹Spring Boot加载文件

时间:2018-09-22 03:33:08

标签: java maven spring-boot classloader

Apache Maven 3.5.4

jdk-10.0.1

Spring Boot 2.0.4.RELEASE

赢10

我在src / main / resources / images /文件夹中有图像。当我在智能J中运行该应用程序时,它工作正常,但是当我创建该应用程序的jar时。它找不到图像文件。我尝试了以下方法均无济于事。知道如何检索图像文件吗?谢谢。

    dogImageFile = new File("src/main/resources/images/dog.png");
    dogClick = new Image(dogImageFile.toURI().toString());


    dogImageFile = new File("\\images\\dog.png");
    dogClick = new Image(dogImageFile.toURI().toString());


    //Tried via @Value("classpath:dog.png") and ResourceLoader 

    //Also tried 

    dogClick= new Image(getClass().getClassLoader().getResource("src/main/resources/images/dog.png").toString(), true);

3 个答案:

答案 0 :(得分:0)

这与Java版本和springboot版本无关。您需要注意编译的类文件和资源文件的路径。

答案 1 :(得分:0)

InputStream stream = getClass().getClassLoader().getResourceAsStream("static/xxx.pdf");
File targetFile = new File("xxx.pdf");
FileUtils.copyInputStreamToFile(stream, targetFile);

嗨,您可以使用此代码在jar中读取文件!

答案 2 :(得分:0)

This does it.

dogClick = new Image("/images/dog.png");