Issue
I’m trying to read a text file using Spring resource loader like this :
Resource resource = resourceLoader.getResource("classpath:\\static\\Sample.txt");
The file locates here in my Spring boot project: href="https://i.stack.imgur.com/eSScg.png" rel="noreferrer">
It works fine when running the application in eclipse, but when I package the application then run it using java –jar , I get file not found exception :
java.io.FileNotFoundException: class path resource [static/Sample.txt] cannot be resolved to absolute file path because it does not reside in the
file system: jar:file:/C:/workspace-test/XXX/target/XXX-0.0.1-SNAPSHOT.jar!/BOOT-INF/classes!/static/Sample.txt
I unziped the Jar file the Sample locates in : XXX-0.0.1-SNAPSHOT\BOOT-INF\classes\static\Sample.txt
Can someone help me please ?
Thanks in advance!
Solution
I have checked your code.If you would like to load a file from classpath in a Spring Boot JAR, then you have to use the resource.getInputStream()
rather than resource.getFile()
.If you try to use resource.getFile()
you will receive an error, because Spring tries to access a file system path, but it can not access a path in your JAR.
detail as below:
https://smarterco.de/java-load-file-classpath-spring-boot/
Answered By - Gipple Lake
Answer Checked By - Dawn Plyler (JavaFixing Volunteer)