Files.readString(Paths.get(ClassPathResource("temp.md").uri)
src〉main〉resources文件夹下的markdown文本通过上面的代码加载,在本地环境下检查文件位置,数据正常加载,但是在ec2上执行构建的jar时,返回如下错误。我觉得,建jar的路径是错误的,但我不知道如何解决,请指教
rqcrx0a61#
或者,我们可以使用类加载器示例读取资源。
ClassLoader classLoader = SpringBootResourcesApplication.class.getClassLoader(); File file = new File(classLoader.getResource("temp.md").getFile());
83qze16e2#
当应用程序被打包为JAR时,从类路径中的文件加载文件的方式会有所不同。有关详细说明,请查看this Baeldung article。这将独立于代码的打包方式工作:
import lombok.SneakyThrows; import lombok.experimental.UtilityClass; import org.springframework.util.ResourceUtils; import java.nio.file.Files; @UtilityClass public class FileTestUtils { @SneakyThrows public byte[] getFileAsBytes(String fileName) { return Files.readAllBytes(ResourceUtils.getFile("classpath:" + fileName).toPath()); } @SneakyThrows public String getFileAsString(String fileName) { return new String(Files.readAllBytes(ResourceUtils.getFile("classpath:" + fileName).toPath())); } }
2条答案
按热度按时间rqcrx0a61#
或者,我们可以使用类加载器示例读取资源。
83qze16e2#
当应用程序被打包为JAR时,从类路径中的文件加载文件的方式会有所不同。
有关详细说明,请查看this Baeldung article。
这将独立于代码的打包方式工作: