3 回答

TA貢獻(xiàn)1798條經(jīng)驗(yàn) 獲得超7個(gè)贊
您能否檢查一下 jar 內(nèi)是否包含類文件夾中提到的文件。您也可以嘗試下面的代碼從類路徑加載文件。
Thread.currentThread().getContextClassLoader().getResource(<file_name>)
如果可能,則將該文件保留在 jar 外部的某個(gè)文件夾位置,并在執(zhí)行 jar 時(shí)將該位置設(shè)置為類路徑。

TA貢獻(xiàn)1775條經(jīng)驗(yàn) 獲得超8個(gè)贊
正如 Ropert Scholte 提到的修復(fù)它一樣,我使用 Inputstream 來加載,而不是將其作為文件加載。我用下面的代碼修復(fù)了它:
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;
}
請(qǐng)注意,由于我使用該文件來驗(yàn)證 JSON 架構(gòu),因此我需要將輸入流轉(zhuǎn)換為讀取器對(duì)象
添加回答
舉報(bào)