載入資源時,如果應用程式從IDE 運行,則資源的路徑可能與從IDE 運行時的路徑不同一個jar 檔案。如果應用程式依賴特定檔案路徑,這可能會導致問題。
解決此問題的一種方法是使用 getResourceAsStream 而不是 getResource。 getResourceAsStream 傳回一個 InputStream,可用於讀取資源數據,而無需處理檔案路徑。
另一個選擇是在使用資源之前將資源提取到臨時檔案。這可以使用 Files.copy 方法來完成。
但是,請務必注意,某些程式碼可能依賴檔案系統中實體單一檔案中的資料。在這種情況下,將資源捆綁在 jar 檔案中可能不是一個選項。
程式碼範例:
InputStream inputStream = WinProcessor.class.getResourceAsStream("repository"); BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)); String line; while ((line = reader.readLine()) != null) { // Do something with the line } reader.close();
以上是如何從Jar檔案中正確載入資源?的詳細內容。更多資訊請關注PHP中文網其他相關文章!