Heim >Java >javaLernprogramm >Wie kann ich in Java auf in einer JAR-Datei eingebettete Ressourcen zugreifen?

Wie kann ich in Java auf in einer JAR-Datei eingebettete Ressourcen zugreifen?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-13 08:15:12148Durchsuche

How Can I Access Resources Embedded within a JAR File in Java?

Zugriff auf Ressourcen innerhalb einer JAR-Datei mit Java

Beim Arbeiten mit JAR-Dateien kann es erforderlich sein, Pfade zu eingebetteten Ressourcen abzurufen. Der Versuch, einen Pfad mithilfe von Techniken wie

ClassLoader classLoader = getClass().getClassLoader();
File file = new File(classLoader.getResource("config/netclient.p").getFile());

zu ermitteln, kann jedoch zu einer Fehlermeldung führen, die darauf hinweist, dass die angegebene Datei nicht gefunden werden kann. Dieses Verhalten ist der Java-JAR-Dateistruktur inhärent.

Der Grund für dieses Ergebnis ist, dass in JARs enthaltene Ressourcen nicht unbedingt als einzelne Dateien im Dateisystem verfügbar sind. Sie können so komprimiert oder im Archiv gespeichert sein, dass ein direkter Zugriff auf das Dateisystem unmöglich ist.

Darüber hinaus ist die Verwendung einer java.io.File für den Ressourcenzugriff möglicherweise nicht der effizienteste oder portabelste Ansatz . Erwägen Sie stattdessen die folgenden Optionen:

  • Verwenden eines Klassenpfad-Ressourcenpfads: Geben Sie den Pfad zur Ressource als Klassenpfadeintrag an, z. B.:
classLoader.getResource("config/netclient.p")

Dieser Ansatz ermöglicht den Zugriff auf den Ressourcenstream, stellt jedoch keine Datei bereit Pfad.

  • Vorübergehendes Extrahieren der Ressource: Wenn ein Dateipfad unbedingt erforderlich ist, extrahieren Sie die Ressource an einen temporären Speicherort mit:
InputStream in = classLoader.getResourceAsStream("config/netclient.p");
FileOutputStream out = new FileOutputStream(new File("tmp/" + fileName));

Dadurch können Sie eine Dateiversion der Ressource im angegebenen temporären Verzeichnis erstellen.

Das obige ist der detaillierte Inhalt vonWie kann ich in Java auf in einer JAR-Datei eingebettete Ressourcen zugreifen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn