Navigieren und Abrufen von Dateien innerhalb einer JAR-Datei
Bei der Arbeit mit JAR-Dateien ist es für verschiedene Zwecke erforderlich, auf die internen Dateien zuzugreifen. Diese Frage stellt sich, wenn Sie Dateien in einer JAR-Datei aufzählen müssen, insbesondere um Bilder zu laden und dynamisch darauf zuzugreifen.
Die Lösung besteht in der Verwendung einer Kombination von Methoden. Bestimmen Sie zunächst die JAR-Datei, in der sich Ihre Hauptklasse befindet. Sie können diese Informationen mit java.util.Zip abrufen.
Sobald Sie den Namen der JAR-Datei kennen, erstellen Sie ein CodeSource-Objekt und rufen Sie die URL der JAR-Datei ab. Als nächstes verwenden Sie ZipInputStream, um auf den Inhalt der JAR-Datei zuzugreifen. Rufen Sie kontinuierlich ZipEntry-Objekte aus dem Stream ab und überprüfen Sie den Namen jedes Eintrags. Wenn der Name mit dem gewünschten Verzeichnispfad übereinstimmt, können Sie alle erforderlichen Vorgänge für diesen Eintrag ausführen.
Hier ist ein Beispielcode-Snippet zum Auflisten von Bildern in der JAR-Datei:
CodeSource src = MyClass.class.getProtectionDomain().getCodeSource(); if (src != null) { URL jar = src.getLocation(); ZipInputStream zip = new ZipInputStream(jar.openStream()); while (true) { ZipEntry entry = zip.getNextEntry(); if (entry == null) break; if (entry.getName().startsWith("images/")) { // Process the image entry } } }
Alternativ Sie kann das FileSystem von Java 7 und die File-Walking-Mechanismen von NIO verwenden, um den Inhalt der JAR-Datei zu durchsuchen. Dies vereinfacht das Suchen und Filtern nach Dateien innerhalb der JAR-Datei.
Das obige ist der detaillierte Inhalt vonWie kann ich in Java auf Dateien in einer JAR-Datei zugreifen und diese abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!