在 Java 中,存取 JAR 檔案中打包的資源可能具有挑戰性。雖然串流資源內容很簡單,但要取得可存取的檔案路徑可能難以捉摸。
一種方法嘗試使用 getResource 方法建立 File 物件:
ClassLoader classLoader = getClass().getClassLoader(); File file = new File(classLoader.getResource("config/netclient.p").getFile());
但是,這通常會失敗FileNotFoundException,因為資源在檔案系統上可能沒有對應的檔案。
了解資源概念
JAR 檔案將資源捆綁在存檔中,這些資源可能無法作為實體檔案直接存取。類別加載器處理資源加載,並可以透過串流提供存取。
替代方案:串流資源內容
要在沒有檔案路徑的情況下存取資源內容,請使用:
ClassLoader classLoader = getClass().getClassLoader(); PrintInputStream(classLoader.getResourceAsStream("config/netclient.p"));
臨時檔案Option
如果File物件是必不可少的,請考慮將流複製到臨時檔案:
InputStream resourceStream = classLoader.getResourceAsStream("config/netclient.p"); File tempFile = File.createTempFile("resource", ".tmp"); try (OutputStream outputStream = new FileOutputStream(tempFile)) { resourceStream.transferTo(outputStream); }
複製後,您可以根據需要操作臨時檔案。
以上是如何存取 Java JAR 檔案內的資源路徑?的詳細內容。更多資訊請關注PHP中文網其他相關文章!