載入資源時,如果應用程式從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();
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3