首頁 >Java >java教程 >為什麼作為 Jar 檔案運行時找不到類路徑資源?

為什麼作為 Jar 檔案運行時找不到類路徑資源?

Linda Hamilton
Linda Hamilton原創
2024-11-04 12:52:29403瀏覽

Why does Classpath Resource Not Found when Running as Jar File?

作為 Jar 檔案執行時未找到類路徑資源

使用 @Value 註解載入類路徑資源時,考慮檔案的位置。如果資源嵌入在 JAR 檔案中,則使用 resource.getFile() 檢索其內容可能會導致異常,因為 getFile() 期望資源在檔案系統上可用。

檢索資源的JAR 檔案中的內容,請改用 resource.getInputStream()。這使您可以讀取資源的內容,無論其位置如何。

以下是如何修改應用程式以使用 getInputStream() 的範例:

<code class="java">private void testResource(Resource resource) {
  try {
    InputStream inputStream = resource.getInputStream();
    printFileContents(inputStream);
  } catch (IOException ex) {
    logger.error(ex.toString());
  }
}

private void printFileContents(InputStream inputStream) {
  BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
  bufferedReader.lines().forEach(logger::debug);
}</code>

以上是為什麼作為 Jar 檔案運行時找不到類路徑資源?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn