I am working on a springboot application. I need to load a file that is in resources. The file can be loaded without issues if I run unit tests (maven, just in case)... or even an integration test. But when I run the application say, for real, from the packaged jar, then it can't be found. I have tried with a couple of different ways to reach it but they fail:
java.lang.IllegalArgumentException: resource path-to-file not found.
        at com.google.common.base.Preconditions.checkArgument(Preconditions.java:217) ~[grpc-1.23.jar!/:?]
        at com.google.common.io.Resources.getResource(Resources.java:195) ~[grpc-1.23.jar!/:?]
Another way:
java.io.FileNotFoundException: class path resource [path-to-file] cannot be resolved to absolute file path because it does not exist
        at org.springframework.util.ResourceUtils.getFile(ResourceUtils.java:177) ~[spring-core-5.1.7.RELEASE.jar!/:5.1.7.RELEASE]
The file is in WEB-INFO/classes/path-to-file which is coming from src/main/resources/path-to-file in my project.
Thanks for any outside-of-the-box ideas.
Update 1 This made it work from jar, and the code is simple enough:
    ClassPathResource cl = new ClassPathResource(resourcePath);
    URL url = cl.getURL();
    String content;
    try (InputStream in = url.openStream()) {
      content = new String(in.readAllBytes(), StandardCharsets.UTF_8);
    }
    LOG.info("Content from {} is {} bytes long", resourcePath, content.length());
    return content;
The tip came from the answer that is marked as accepted. Thanks!