在 spring-boot 中从 jar 中读取文件

Nit*_*706 7 spring java-io spring-boot

我正在使用 Spring boot 2.0.4,尝试读取放置在 resources/ 目录中的 json 文件,但收到“FileNotFoundException”。

我已经从 Stackoverflow 和其他链接引用了很多页面,但到目前为止还没有成功。

以下是堆栈跟踪片段,我不确定为什么会有“!” 在类路径中:

/opt/springboot/myProject.jar!/BOOT-INF/classes!/schema/jsonValidationSchema.json at o.s.u.ResourceUtils.getFile(ResourceUtils.java:217) at o.s.u.ResourceUtils.getFile(ResourceUtils.java:180)
Run Code Online (Sandbox Code Playgroud)

这是代码片段:

        InputStream in = new ClassPathResource("jsonValidationSchema.json").getInputStream();
        JsonNode schemaJsonNode = JsonLoader.fromReader(new InputStreamReader(in, "UTF-8"));
        JsonSchema schemaNode = ValidationUtils.getSchemaNode(schemaJsonNode);
Run Code Online (Sandbox Code Playgroud)

参考:

jar 内的文件对于 spring 不可见

从 Spring Boot 中的资源文件夹中读取文件

https://smarterco.de/java-load-file-from-classpath-in-spring-boot/

java.io.FileNotFoundException:无法打开类路径资源,因为它不存在

java.io.FileNotFoundException:类路径资源