3 回答
TA贡献1798条经验 获得超7个赞
您能否检查一下 jar 内是否包含类文件夹中提到的文件。您也可以尝试下面的代码从类路径加载文件。
Thread.currentThread().getContextClassLoader().getResource(<file_name>)
如果可能,则将该文件保留在 jar 外部的某个文件夹位置,并在执行 jar 时将该位置设置为类路径。
TA贡献1775条经验 获得超8个赞
正如 Ropert Scholte 提到的修复它一样,我使用 Inputstream 来加载,而不是将其作为文件加载。我用下面的代码修复了它:
private Reader loadSchema(String schemaName) throws JsonSchemaMissingException {
ClassLoader classLoader = JsonSchemaValidator.class.getClassLoader();
InputStream fileStream = classLoader.getResourceAsStream(schemaName);
if (fileStream == null) {
log.LogErrorWithTransactionId("", "file does not exist ");
throw new JsonSchemaMissingException("file does not exist");
}
Reader reader = new InputStreamReader(fileStream, StandardCharsets.UTF_8);
return reader;
}
请注意,由于我使用该文件来验证 JSON 架构,因此我需要将输入流转换为读取器对象
添加回答
举报