在我的资源文件夹中:
src/main/resources
我有两个文件,一个application.properties文件和一个 JSON 文件app.schema.json
我有以下功能:
private File loadSchema(String schemaName) throws JsonSchemaMissingException {
ClassLoader classLoader = JsonSchemaValidator.class.getClassLoader();
File file = new File(Objects.requireNonNull(classLoader.getResource("app.schema.json")).getFile());
if (!file.exists()) {
log.LogErrorWithTransactionId("", "file does not exist " + file.getAbsolutePath());
throw new JsonSchemaMissingException("file does not exist");
}
return file;
}
如果我运行mvn spring-boot:run它成功找到该文件。如果我运行:
mvn package
java -jar app.jar
我得到一个NullPointer,因为以下文件不存在:
/home/XXX/Docs/project/XXX/file:/home/ghovat/Docs/project/XXX/target/app.jar!/BOOT-INF/classes!/app.event.json
在构建中的 pom.xml 中,我添加了以下设置:
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
无论哪种方式都行不通。如果我运行,它可以到达该文件mvn spring-boot:run ,但如果我运行mvn clean package spring-boot:repackage但java -jar target/app.jar找不到该文件,它也可以到达该文件。
我检查了所有文档并尝试了几种不同的方法来加载文件,但无论哪种方式都找不到它。
我怎样才能使该文件可用?
元芳怎么了
胡子哥哥
www说
相关分类