![]() |
|
|
Themen-Optionen |
|
|
Nach oben #1 |
|
Gast
Beiträge: n/a
|
Hallo!
Folgendes Szenario ist gegeben: Es gibt eine jar-Datei - da ihr Dateiname jederzeit geändert werden kann, nennen wir sie einfach xyz.jar. In xyz.jar befindet sich (neben einigen anderen Klassen) die Klasse mit der main-Methode, sie soll Main.class heißen. Weiterhin befindet sich in xyz.jar eine gezippte Datei, von der wir ausgehen, dass ihr Dateiname nicht geändert wird. Sie soll ZIPFILE.zip heißen. Ich möchte nun aus Main.class auf Dateien zugreifen, die in ZIPFILE.zip enthalten sind, OHNE diese auf irgendeine Weise entpacken zu müssen. Wie kann ich das tun?? Man bedenke: ZIPFILE.zip befindet sich NICHT in irgendeinem Dateiverzeichnis, so dass etwas wie Code:
ZipFile zip = new ZipFile(new File("ZIPFILE.zip"));
Hat jemand eine Idee, wie man das Problem lösen kann? Viele Grüße von Frank |
|
|
|
Nach oben #3 |
|
Gast
Beiträge: n/a
|
Habe ich getan, aber auf welchem Objekt soll ich die Methode aufrufen, und welchen Namen soll ich ihr übergeben? Den Namen des jar-Archivs zu übergeben macht schon mal keinen Sinn, da sich dieser jederzeit ändern kann. Aber welchen dann?
Viele Grüße von Frank |
|
|
|
Nach oben #4 |
|
Erfahrener Benutzer
Registriert seit: 29.05.2004
Beiträge: 228
|
(new ClassLoader()).getRessourceAsStream("ZIPFILE.zip")
Mit dem ZIP-Dateinamen als Namen, allerdings muss die Zip-Datei im Root-Ordner innerhalb des Jar-Archivs liegen. MfG Peschmä
__________________
Amazon.de | The Java Trap | Freie Software | Freie Software vs. Open Source | GNU Classpath | GCJ | SableVM "We should forget about small efficiencies, say about 97% of the time: Premature optimization is the root of all evil." - Donald Knuth |
|
|
|
|
|
Nach oben #5 |
|
Gast
Beiträge: n/a
|
Nach einigen Experimenten und Verzicht auf das zip-File läuft es jetzt so, wie ich es mir vorgestellt habe.
Vielleicht ist es nicht der Königsweg, aber es funktioniert: Ich habe mir in Main.class ein Class-Objekt der eigenen Klasse erzeugt und auf diesem dann getResourceAsStream(Dateiname) aufgerufen. Der Weg über einen ClassLoader war nicht nötig, da das Class-Objekt obigen Methodenaufruf ohnehin an den eigenen Class Loader delegiert. (Richtig?) Besten Dank für die Hinweise! Viele Grüße von Frank |
|
|
|
Nach oben #7 |
|
Gast
Beiträge: n/a
|
Hallo Philipp!
Wenn Bild1.jpg im selben Verzeichnis wie die Klasse des this-Objekts liegt, müsste auch ein Aufruf von ... .createImage("Bild1.jpg") genügen. Hier möchte ich mich aber nicht festlegen... Ich muss den Weg über getResource() gehen, da sich mein Bild in einem jar-Archiv befindet. Dein obiger Code entspricht jedenfalls dem, was ich meinte. Viele Grüße von Frank |
|
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Aktualisierung des Forenplugins vBSEO auf Version 3.0.0 gold | Ben | Ankündigungen | 7 | 30.05.2007 13:59 |
| Informationen auf der Startseite des Portals | Ben | Ankündigungen | 11 | 05.11.2006 16:03 |
| UN ruft asiatische Staaten zur Nutzung und Unterstützung des ODF auf | Ben | Nachrichten | 1 | 10.08.2006 20:36 |
| [PHP] FTP-Funktionen in PHP nutzen | MrNiceGuy | Tutorials | 0 | 24.05.2006 14:18 |
| Pong Klon | hii | Allgemeine Java-Programmierung | 0 | 07.08.2005 08:25 |