首頁  >  文章  >  Java  >  如何在 Java 中存取 JAR 檔案中的資源?

如何在 Java 中存取 JAR 檔案中的資源?

Barbara Streisand
Barbara Streisand原創
2024-11-06 16:36:02536瀏覽

How to Access Resources from JAR Files in Java?

從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中文網其他相關文章!

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