Auflisten von Dateien in einer JAR-Datei
In Java kann die listFiles()-Methode verwendet werden, um eine Liste von Dateien in einem Verzeichnis abzurufen . Es kann jedoch nicht direkt auf eine JAR-Datei angewendet werden, um deren Inhalt abzurufen.
Um dies zu erreichen, können Sie die CodeSource-Klasse von Java verwenden:
CodeSource src = MyClass.class.getProtectionDomain().getCodeSource(); if (src != null) { URL jar = src.getLocation(); try (ZipInputStream zip = new ZipInputStream(jar.openStream())) { while (true) { ZipEntry e = zip.getNextEntry(); if (e == null) { break; } String name = e.getName(); if (name.startsWith("path/to/your/dir/")) { // Process the entries within the specified directory. } } } catch (IOException ex) { // Handle I/O exceptions. } } else { // Handle the case where no CodeSource is available. }
Hinweis:
Java 7-Verbesserungen:
In Java 7 und höher können Sie ein FileSystem-Objekt direkt erstellen aus der JAR-Datei mithilfe der Methode FileSystems.newFileSystem(). Dies ermöglicht Ihnen den Zugriff auf JAR-Dateiinhalte mithilfe der Verzeichnisdurchlauf- und Filtermechanismen von NIO, was den Umgang mit JARs und „explodierten“ Verzeichnissen komfortabler macht.
Das obige ist der detaillierte Inhalt vonWie kann ich Dateien in einer JAR-Datei in Java auflisten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!