首頁 > Java > java教程 > 如何使用 Java 列出 JAR 檔案內的檔案?

如何使用 Java 列出 JAR 檔案內的檔案?

Barbara Streisand
發布: 2024-12-20 01:39:10
原創
237 人瀏覽過

How Can I List Files Inside a JAR File Using Java?

使用 Java 列出 JAR 中的檔案

使用 JAR 檔案時的一個常見任務是列出它們包含的檔案。這對於各種目的都很有用,例如提取特定文件或建立存檔內容的清單。

使用 Java API

Java 提供了一組廣泛的類別來處理 ZIP 文件,包括 JAR 檔案。 ZipInputStream 類別可讓您迭代 JAR 檔案中的條目並存取其元資料。

要列出 JAR 中的文件,請按照以下步驟操作:

  1. 取得 CodeSource 物件對於 JAR 中運行的類別。這可以使用 Class 物件的 getProtectionDomain() 和 getCodeSource() 方法來完成。
  2. 使用 getLocation() 方法將 CodeSource 轉換為 URL 物件。
  3. 從以下位置建立 ZipInputStream 物件URL。
  4. 透過呼叫 getNextEntry() 方法來迭代 JAR 中的條目ZipInputStream。
  5. 對於每個條目,檢查名稱是否與所需的模式或條件相符。

範例程式碼

以下程式碼顯示了列出所有JAR 中的檔案:

CodeSource src = MyClass.class.getProtectionDomain().getCodeSource();
if (src != null) {
  URL jar = src.getLocation();
  ZipInputStream zip = new ZipInputStream(jar.openStream());
  while (true) {
    ZipEntry e = zip.getNextEntry();
    if (e == null) {
      break;
    }
    System.out.println(e.getName());
  }
} else {
  System.out.println("JAR not found");
}
登入後複製

Java 7 增強程式

中Java 7引入了一項新功能,可以簡化使用ZIP 檔案的過程。 FileSystem 類別可用於將 ZIP 檔案安裝為唯讀檔案系統。這允許您使用標準 Java I/O 庫來導航和列出 JAR 檔案的內容。

以下程式碼顯示了使用FileSystem 類別列出JAR 中的檔案的範例:

Path jarPath = Paths.get("/path/to/my.jar");
FileSystem fs = FileSystems.newFileSystem(jarPath, null);
Path root = fs.getPath("/");
Files.walk(root)
    .filter(path -> path.toString().startsWith("path/to/your/dir/"))
    .forEach(System.out::println);
登入後複製

此程式碼使用Files 類,該類別提供了用於處理檔案和目錄的高階API ,可以遍歷JAR 檔案的根目錄並過濾掉任何與期望的標準。

以上是如何使用 Java 列出 JAR 檔案內的檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板