Rumah >Java >javaTutorial >Bagaimanakah Saya Boleh Menyenaraikan Fail Di Dalam Fail JAR Menggunakan Java?

Bagaimanakah Saya Boleh Menyenaraikan Fail Di Dalam Fail JAR Menggunakan Java?

Barbara Streisand
Barbara Streisandasal
2024-12-20 01:39:10288semak imbas

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

Menyenaraikan Fail Dalam JAR dengan Java

Satu tugas biasa apabila bekerja dengan arkib JAR ialah menyenaraikan fail yang terkandung di dalamnya. Ini boleh berguna untuk pelbagai tujuan, seperti mengekstrak fail tertentu atau mencipta inventori kandungan arkib.

Menggunakan Java API

Java menyediakan set kelas yang luas untuk mengendalikan fail ZIP, termasuk arkib JAR. Kelas ZipInputStream membolehkan anda mengulangi entri dalam fail JAR dan mengakses metadatanya.

Untuk menyenaraikan fail dalam JAR, ikut langkah berikut:

  1. Dapatkan objek CodeSource untuk kelas yang berjalan dalam JAR. Ini boleh dilakukan menggunakan kaedah getProtectionDomain() dan getCodeSource() bagi objek Kelas.
  2. Tukar CodeSource kepada objek URL menggunakan kaedah getLocation().
  3. Buat objek ZipInputStream daripada URL.
  4. Lelaran ke atas entri dalam JAR dengan memanggil kaedah getNextEntry() ZipInputStream.
  5. Untuk setiap entri, semak sama ada nama itu sepadan dengan corak atau kriteria yang diingini.

Kod Contoh

Kod berikut menunjukkan contoh menyenaraikan semua fail dalam 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 Penambahbaikan

Dalam Java 7, satu ciri baharu telah diperkenalkan yang memudahkan proses bekerja dengan fail ZIP. Kelas FileSystem boleh digunakan untuk melekapkan fail ZIP sebagai sistem fail baca sahaja. Ini membolehkan anda menggunakan perpustakaan I/O Java standard untuk menavigasi dan menyenaraikan kandungan fail JAR.

Kod berikut menunjukkan contoh menggunakan kelas FileSystem untuk menyenaraikan fail dalam 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);

Kod ini menggunakan kelas Fail, yang menyediakan API peringkat tinggi untuk bekerja dengan fail dan direktori, untuk berjalan melalui direktori akar fail JAR dan menapis keluar mana-mana fail yang tidak sepadan dengan kriteria yang diingini.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyenaraikan Fail Di Dalam Fail JAR Menggunakan Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn