Portal > Foren > Java > Allgemeine Java-Programmierung > Auf den Inhalt des eigenen jar-Archivs zugreifen?
Antwort
 
Themen-Optionen Thema durchsuchen
Alt 13.10.2004, 08:28 Nach oben    #1
houdini808
Gast
 
Beiträge: n/a
Standard Auf den Inhalt des eigenen jar-Archivs zugreifen?

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"));
NICHT funktionieren wird.

Hat jemand eine Idee, wie man das Problem lösen kann?

Viele Grüße von

Frank
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 13.10.2004, 11:06 Nach oben    #2
Linuxhippy
Gast
 
Beiträge: n/a
Standard Hmm...

Schau dir mal Class.getResourceAsStream an.

lg Clemens
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 13.10.2004, 15:20 Nach oben    #3
houdini808
Gast
 
Beiträge: n/a
Standard Wie nutzen?

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
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 13.10.2004, 18:51 Nach oben    #4
Erfahrener Benutzer
 
Benutzerbild von peschmae
 
Registriert seit: 29.05.2004
Beiträge: 228
Standard

(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
peschmae ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.10.2004, 15:13 Nach oben    #5
houdini808
Gast
 
Beiträge: n/a
Standard Bingo!

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
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 17.10.2004, 12:10 Nach oben    #6
wwwsteel
Gast
 
Beiträge: n/a
Standard

Hallo,

Habe ich jetzt was mißverstanden?

Ich machs z.B. so:
//**setIconImage(Toolkit.getDefaultToolkit().createI mage(
//** this.getClass().getResource("Bild1.jpg")));

MfG, Philipp
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 18.10.2004, 12:32 Nach oben    #7
houdini808
Gast
 
Beiträge: n/a
Standard Kein Missverständnis

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
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
PingBacks sind an
RefBacks sind aus

Ä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


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:01 Uhr.


Powered by vBulletin® Version 3.7.4 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45