Solución:
He verificado su código Si desea cargar un archivo desde classpath en un Spring Boot JAR, entonces debe usar el resource.getInputStream () en vez de resource.getFile ().Si intenta usar resource.getFile (), recibirá un error, porque Spring intenta acceder a una ruta del sistema de archivos, pero no puede acceder a una ruta en su JAR.
Detalle a continuación:
https://smarterco.de/java-load-file-classpath-spring-boot/
Por favor, inténtalo resourceLoader.getResource("classpath:static/Sample.txt");
Trabajar con este código cuando se ejecuta con java -jar XXXX.jar
—— actualizar ——
Después de revisar sus códigos, el problema es que intenta leer el archivo por el FileInputStream
pero en realidad está dentro del archivo jar.
Pero en realidad obtienes el org.springframework.core.io.Resource
entonces significa que tu gato obtiene InputStream, para que puedas hacerlo como new BufferedReader(new InputStreamReader(resource.getInputStream())).readLine();
Pon los archivos debajo resources/static
, estará en classpath y leerá la ruta como se muestra a continuación
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
Resource resource = new ClassPathResource("/static/pathtosomefile.txt");
resource.getURL().getPath()