從JAR 檔案載入資源
在您的應用程式中,您使用WinProcessor.class.getResource("repository") 載入資源。 toString(),它在從 IDE 運行時提供檔案路徑,但在作為 JAR 檔案執行時傳回 JAR URL。出現這種差異的原因是 JAR 檔案包含壓縮和打包格式的資源。
了解 JAR 中的資源載入
當您將應用程式打包到 JAR 檔案時,其內容,包括資源,儲存在存檔中。當您嘗試存取 JAR 檔案中的資源時,JVM 對待它的方式與檔案系統中的檔案不同。 getResource 方法傳回指向 JAR 中資源位置的 URL。
解決方案:使用 getResourceAsStream
要解決此問題,建議使用 getResourceAsStream 而不是取得資源。 getResourceAsStream 傳回一個 InputStream,讓您可以直接從 JAR 檔案讀取資源的內容。然後,您可以使用 InputStream 建立必要的對象,例如 ConfigurationContext 或設定係統屬性。
這是使用 getResourceAsStream 的更新範例:
InputStream repositoryInputStream = WinProcessor.class.getResourceAsStream("repository"); ConfigurationContext ctx = (ConfigurationContext) ConfigurationContextFactory.createConfigurationContextFromFileSystem(repositoryInputStream, null); InputStream fileNameInputStream = WinProcessor.class.getResourceAsStream("file_name"); System.setProperty("javax.net.ssl.trustStore", fileNameString);
透過使用 getResourceAsStream,您可以避免從 IDE 運行和作為 JAR 檔案執行之間的路徑差異問題。 InputStream 正確指向 JAR 中資源的位置,讓您可以存取其內容。
以上是如何在 Java 中存取 JAR 檔案中的資源?的詳細內容。更多資訊請關注PHP中文網其他相關文章!