在 Java JAR 文件中獲取資源的路徑

https://feeds.feedblitz.com/~/874941494/0/baeldung~Get-a-Path-to-a-Resource-in-a-Java-JAR-File

Java JAR 檔案中資源路徑

Java JAR 檔案中的資源通常以相對於其根目錄的路徑進行存取。了解這些路徑的結構對有效擷取資源至關重要。本教程探討不同方法以取得 Java JAR 檔案中資源的路徑。

1. 使用 Class.getResource()方法取得資源的 URL

Class.getResource()方法提供取得 JAR 檔案中資源 URL 的直截了當方式。使用方法如下:

@Test
public void givenFile_whenClassUsed_thenGetResourcePath() {
URL resourceUrl = GetPathToResourceUnitTest.class.getResource(“/myFile.txt”);
assertNotNull(resourceUrl);
}

2. 使用 ClassLoader.getResource()方法

我們也可以使用 ClassLoader.getResource()方法來存取 JAR 檔案中的資源。這對於編譯時未知資源路徑時很有用:

@Test
public void givenFile_whenClassLoaderUsed_thenGetResourcePath() {
URL resourceUrl = GetPathToResourceUnitTest.class.getClassLoader().getResource(“myFile.txt”);
assertNotNull(resourceUrl);
}

3. 使用 Paths.get()方法

自 Java 7 開始,我們可以使用 Paths.get()方法取得代表 JAR 檔案中資源的 Path 對象。方法如下:

@Test
public void givenFile_whenPathUsed_thenGetResourcePath() throws Exception {
Path resourcePath = Paths.get(Objects.requireNonNull(GetPathToResourceUnitTest.class.getResource(“/myFile.txt”)).toURI());
assertNotNull(resourcePath);
}

總結

存取 Java JAR 檔案中的資源對許多應用程式至關重要。無論是 Class.getResource()的簡單性、ClassLoader.getResource()的靈活性,還是 Paths.get()的現代化方法,Java 提供各種有效達成此任務的方法。源代碼可以在 GitHub 上找到。

via Baeldung

April 3, 2024 at 06:54PM

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *