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:
classLoader.getResource("config/netclient.p")
Dieser Ansatz ermöglicht den Zugriff auf den Ressourcenstream, stellt jedoch keine Datei bereit Pfad.
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!