Maison > Java > javaDidacticiel > Comment puis-je répertorier les fichiers dans un fichier JAR à l'aide de Java ?

Comment puis-je répertorier les fichiers dans un fichier JAR à l'aide de Java ?

Barbara Streisand
Libérer: 2024-12-20 01:39:10
original
286 Les gens l'ont consulté

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

Liste des fichiers dans un JAR avec Java

Une tâche courante lorsque l'on travaille avec des archives JAR consiste à répertorier les fichiers qu'elles contiennent. Cela peut être utile à diverses fins, telles que l'extraction de fichiers spécifiques ou la création d'un inventaire du contenu de l'archive.

Utilisation de l'API Java

Java fournit un ensemble complet de classes pour gérer les fichiers ZIP, y compris les archives JAR. La classe ZipInputStream vous permet de parcourir les entrées d'un fichier JAR et d'accéder à leurs métadonnées.

Pour lister les fichiers dans un JAR, suivez ces étapes :

  1. Obtenez l'objet CodeSource pour la classe qui s'exécute dans le JAR. Cela peut être fait à l'aide des méthodes getProtectionDomain() et getCodeSource() de l'objet Class.
  2. Convertissez le CodeSource en un objet URL à l'aide de la méthode getLocation().
  3. Créez un objet ZipInputStream à partir de l'URL.
  4. Parcourez les entrées du JAR en appelant la méthode getNextEntry() du ZipInputStream.
  5. Pour chaque entrée, vérifiez si le nom correspond au modèle ou au critère souhaité.

Exemple de code

Le code suivant montre un exemple de liste de tous les fichiers dans un 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");
}
Copier après la connexion

Améliorations de Java 7

En Java 7, une nouvelle fonctionnalité a été introduite pour simplifier le processus de travail avec les fichiers ZIP. La classe FileSystem peut être utilisée pour monter un fichier ZIP en tant que système de fichiers en lecture seule. Cela vous permet d'utiliser les bibliothèques d'E/S Java standard pour parcourir et répertorier le contenu du fichier JAR.

Le code suivant montre un exemple d'utilisation de la classe FileSystem pour répertorier les fichiers dans un 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);
Copier après la connexion

Ce code utilise la classe Files, qui fournit une API de haut niveau pour travailler avec des fichiers et des répertoires, pour parcourir le répertoire racine du fichier JAR et filtrer tous les fichiers qui ne correspondent pas à celui souhaité. critère.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal