Swing In JAR Ordner durchsuchen

beastofchaos

Bekanntes Mitglied
Hi Leute,
Wie kann ich eigentlich in meiner JAR-Datei ein Verzeichnis bzw. ein Package auslesen? In Eclipse klappt es sogar per File, da es ein richtiger Ordner ist, aber in der JAR habe ich erfahren, dass ich mit
Code:
URL.openStream()
arbeiten muss, um eine Datei auszulesen. Und das gleiche sollte auch mit einem Ordner funktionieren.

Da InputStream selbst nicht anbieten, Unterdateien zu ermitteln, lasse ich per read() jeden einzelnen Char auslesen und füge ihn zu einem String zusammen.
In Eclipse bekomme ich nun alle Dateien getrennt durch "\n". In der JAR kommt ein leerer String raus -> die URL findet er zwar, aber "openStream()" will anscheinend nichts ausspucken.

Also wie lese ich die Dateien in einem JAR-Verzeichnis aus?

Gruß, Thomas
 
J

J7Dev

Gast
Hast du dich schon mal mit den Paktene [japi]java.util.zip[/japi] und [japi]java.util.jar[/japi] befasst ?
Das mit der URL kannst du so erstmal vergessen, das hat so mit Daten innerhalb eines Jar nichts zu tun. Und das du in deiner IDE mit [japi]File[/japi] arbeiten kannst ist klar, weil vor dem Build zu einem Jar ja auch noch alles in Files vorliegt.


btw : Es gibt zum Auflisten von Unter-Ordnern die Methode File.list() bzw File.listFiles() was so in einem Jar aber NICHT funktioniert. Dafür verwendet man ZipFile.entries() bzw JarFile.entries() (Achtung : return-type ist unterschiedlich !).
 
S

Spacerat

Gast
Was haltet ihr davon?
Java:
import java.net.URL;
import java.net.URLDecoder;

import datatypes.DataType;
import datatypes.system.JarFile;

public class Jartester {
	public static void main(String[] args) throws Throwable {
		if(args == null || args.length == 0) {
			args = new String[] {"test.jar"};
		}
		JarFile jf = DataType.load(args[0]);
		for(URL url : jf.list()) {
			System.out.println("loading " + URLDecoder.decode(url.toString(), "UTF8"));
			Object o = DataType.load(url);
			System.out.println("datatype: " + o.getClass().getName());
		}
	}
}
Das ist sozusagen mein "Lebenswerk". Immernoch verbesserungswürdig und nur geringfügig dokumentiert. Aber darum geht's erstmal nicht. Ich denke mal kaum, dass man z.B. das Extrahieren ganzer Archive oder das Laden von Bildern per ImageIO (es sei denn man steht auf ImageIcon XD) kaum in weniger Zeilen hinbekommt, dazu muss man die Lib im Anhang nur in den Classpath kopieren.
Die Library im Anhang ist nun schon so weit, dass sie die in Java zwar bereits vorhandenen Datentypen Fonts, Bilder von ImageIO, durch "javafx.sound.sampled" unterstützte Audioformate, JarArchive, ZipDateien, Verzeichnisse und PlainText erkennt und als verwenbares Objekt zurück gibt (Bilder z.B. als BufferedImage). Jars und Zips können bereits vollständig gelesen und auch extrahiert werden. Eine genaue Auflistung, was alles gelesen werden kann bekommt man mit einem Doppelklick auf das Lib-Archiv. Leider ist es im Moment noch nicht wirklich zu empfehlen, auch die Encoder zu verwenden. Der Clou an der Sache: Datentypen (De- und Encoder) können per Archiv hinzugefügt werden.
Nun stellt sich nur die Frage, ob eine Community ein solches Feature als sinnvoll erachtet und evtl. Interesse an "mehr davon" bekundet. Das Fatale ist nämlich, dass man diese immense Flut an verschiedenen Datentypen kaum allein bewältigen kann.
[EDIT]Ach ja... ein kleines Manko hat die Version bei manchen Audiodateien noch. Ich weis nicht, wie ich den DatenStream garantiert erst nach dem Abspielen geschlossen bekomme. Die Lib schliesst ihn manchmal schon vorher und der Sound hört sich dann nicht mehr so toll an, wie er eigentlich sollte. :( Naja... Jararchive funzen zumindest und was anderes wurde hier ja auch nicht verlangt.[/EDIT]
 

Anhänge

  • datatypes.jar
    230,4 KB · Aufrufe: 1
Zuletzt bearbeitet von einem Moderator:
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Ordner und Unterordner rückwärts durchsuchen Allgemeine Java-Themen 3
E ordner rekursiv durchsuchen Allgemeine Java-Themen 6
M Ordner nach neuester Datei durchsuchen Allgemeine Java-Themen 4
A Alle Ordner durchsuchen und Dateien finden Allgemeine Java-Themen 2
F Alle Files im Ordner nach Dateinamen durchsuchen Allgemeine Java-Themen 28
_user_q Verknüpfung einer .jar-Datei (liegt z. B. auf dem Desktop) im Autostart-Ordner erstellen? Allgemeine Java-Themen 20
Tobero .jar Dateine aus einem Ordner laden (Java 16) Allgemeine Java-Themen 5
G Datei aus Ordner wählen, ohne den Dateinamen im Pfad angeben zu müssen Allgemeine Java-Themen 4
Zrebna FileUtils.cleanDirectory() - aber einen sub-Ordner "verschonen" Allgemeine Java-Themen 1
M Ordner kopieren Allgemeine Java-Themen 5
B Datei/Ordner auf Server zugreifen/erstellen Allgemeine Java-Themen 2
I Klassen aus Jar-Dateien aus anderem Ordner laden Allgemeine Java-Themen 3
B Dateien / Bilder von "webapp" Ordner bekommen? Allgemeine Java-Themen 1
F Registry Ordner durchlaufen Allgemeine Java-Themen 1
Drachenbauer Wie sorge ich dafür, dass mein Spiel die ini-Datei in der Resourcen-ordner des Projektes schreibt? Allgemeine Java-Themen 5
L File beim Kopieren in einen anderen Ordner umbenennen Allgemeine Java-Themen 6
M Key-File im selben Ordner speichern? Allgemeine Java-Themen 18
R Setting Ordner fehlt Allgemeine Java-Themen 1
J Ordner und Datei Struktur einer War Datei Allgemeine Java-Themen 1
K getResource guckt im Target-Ordner...? Allgemeine Java-Themen 2
P Zum src Ordner einen Projektes navigieren Allgemeine Java-Themen 8
D Ordner commiten mit SvnKit Allgemeine Java-Themen 0
U javax.mail.Folder.list() zeigt nicht alle Ordner Allgemeine Java-Themen 5
D Kopieren von Dateien aus einem Ordner in einen anderen Allgemeine Java-Themen 6
I nach Image Load in ListView, kann Ordner nicht mehr gelöscht werden Allgemeine Java-Themen 1
P JDK installieren Kann man die Ordner in C:\Users\*\AppData\LocalLow\Sun\Java\.... löschen? Allgemeine Java-Themen 3
X Dateien von der Jar zum Ordner kopieren. Allgemeine Java-Themen 4
Ananaskirsche Input/Output Dateien im Ordner Allgemeine Java-Themen 8
A Input/Output Liste der Dateien in einem Ordner in einer Jar Datei erhalten Allgemeine Java-Themen 11
D Ordner auf Desktop erstellen(Pc unabhängig) Allgemeine Java-Themen 5
K NetBeans Ordner bei 'Clean&Build' automatisch in dist Verzeichnis kopieren Allgemeine Java-Themen 0
T Ordner samt Dateien kopieren Allgemeine Java-Themen 11
T Datei Ordner in Binär-Zahlenkette umwandeln Allgemeine Java-Themen 11
M JavaMail Spam-Ordner Allgemeine Java-Themen 2
B Dateien verschwinden aus bin Ordner?! Allgemeine Java-Themen 5
Minonos Einem Programm Zugriff auf bestimmte Ordner geben Allgemeine Java-Themen 5
M Pakete in Ordner Kopieren Allgemeine Java-Themen 7
B Ordner öffnen mittels Java in Linux-Umgebung Allgemeine Java-Themen 7
H Ordner in Zip integrieren Allgemeine Java-Themen 7
P Input/Output Ordner löschen --> geht nicht Datei --> Ja Allgemeine Java-Themen 6
I Java Ordner kopieren [Error] Allgemeine Java-Themen 6
S Dateien aus src-Ordner lesen Allgemeine Java-Themen 3
E nach dem Ordner suchen, wo .jar datei sich befindet Allgemeine Java-Themen 17
Developer_X Java FTP - Ordner auf Server erstellen Allgemeine Java-Themen 7
S Zugriffschutz auf Ordner Allgemeine Java-Themen 5
E Ordner rekursiv kopieren Allgemeine Java-Themen 8
J Ordner im Archiv (jar) auslesen Allgemeine Java-Themen 12
P Datei aus Ordner wird nicht gelesen Allgemeine Java-Themen 2
4 Java Ordner Allgemeine Java-Themen 27
S auf freigebene Ordner zugreifen Allgemeine Java-Themen 6
F Ordner auslesen und in Editor ausgeben Allgemeine Java-Themen 7
L Ordner in ZipDatei erstellen Allgemeine Java-Themen 3
V Der Ordner von Java ist gelöscht und ich kann es nicht neu instalieren! Allgemeine Java-Themen 2
S Ordner wechseln wie bei chdir Allgemeine Java-Themen 6
D Ordner Verpfadung Allgemeine Java-Themen 19
B ProcessBuilder: kann Ordner im home nicht finden Allgemeine Java-Themen 2
N Dateien in Ordner einsortieren Allgemeine Java-Themen 11
G Ordner für Dateien finden Allgemeine Java-Themen 3
G Globalen Programm-Ordner herausfinden Allgemeine Java-Themen 7
K settings.properties in den src-ordner schreiben Allgemeine Java-Themen 2
D Ordner mit *.properties in classpath ? Allgemeine Java-Themen 5
D eclipse: Zugriff auf Ordner per code Allgemeine Java-Themen 4
S Einen Ordner zurück von der JarDatei Allgemeine Java-Themen 6
G Programm ausführen, sobald Ordner geöffnet? Allgemeine Java-Themen 21
MQue Ordner anlegen Allgemeine Java-Themen 7
B ZIP - Problem mit dem ersten Ordner Allgemeine Java-Themen 2
M JFileChooser: Ordner anlegen Allgemeine Java-Themen 3
J Verschieben ganzer Dateien (und Ordner) Allgemeine Java-Themen 3
Q ||| Nur Dateien einlesen ohne Ordner. Allgemeine Java-Themen 6
I Diverse Files aus Ordner auslesen Allgemeine Java-Themen 10
D Dateien und ordner ausgabe Allgemeine Java-Themen 5
G Subclipse + svn:ignore - Ordner manuel ignorieren? Allgemeine Java-Themen 2
Y Ordner löschen Allgemeine Java-Themen 2
D Auf Laufwerk bzw. Ordner auf einem Server zugreifen Allgemeine Java-Themen 7
T Ordner überwachen Allgemeine Java-Themen 6
TheJavaKid Ordner in Zip laden Allgemeine Java-Themen 21
D Linux Link wird als Ordner interpretiert? Allgemeine Java-Themen 2
F Dateien in einem Ordner zählen Allgemeine Java-Themen 15
H Klassen aus einem Ordner zur Laufzeit laden. Allgemeine Java-Themen 6
André B. Sucher erfasst nur Ordner Allgemeine Java-Themen 10
M ganzen Ordner mit URL angeben Allgemeine Java-Themen 4
K Ordner/Dateistruktur in Objekten nachbilden Allgemeine Java-Themen 6
N Inhalte aller Txts in einem Ordner Addieren Allgemeine Java-Themen 5
N Alledateien in einem Ordner in ein Vector speichern Allgemeine Java-Themen 19
F Ordner erstellen Allgemeine Java-Themen 3
M Bilder-Ordner kann im JAR-File nicht gefunden werden Allgemeine Java-Themen 15
B dynamisches Laden aller Klassen in einem Ordner ?? Allgemeine Java-Themen 5
O regulärer Ausdruck zum durchsuchen eines Strings verwenden Allgemeine Java-Themen 2
Ernesto95 HTTP Mit JavaScript erzeugte dynamische Webseite auslesen und nach einem Schlüsselwort durchsuchen Allgemeine Java-Themen 6
districon Programm zum Durchsuchen von (Ebay-)Artikeln Allgemeine Java-Themen 1
Kirby.exe Filename nach bestimmtem Pattern durchsuchen Allgemeine Java-Themen 5
S Wörterliste nach Wörtern mit u durchsuchen und diese auf der Konsole ausgeben lassen Allgemeine Java-Themen 33
T Methoden Methode zum durchsuchen einer ArrayList Allgemeine Java-Themen 8
T Textarea nach nur 1 wort durchsuchen Allgemeine Java-Themen 3
F String nach Schlüsselwörtern durchsuchen und ganze Zeile ausgeben Allgemeine Java-Themen 4
M Fasta nach Mustern durchsuchen dauert zu lange Allgemeine Java-Themen 2
R HTML Tabelle durchsuchen Allgemeine Java-Themen 3
G String durchsuchen Allgemeine Java-Themen 5
S String mit Matcher.find durchsuchen und ausgeben Allgemeine Java-Themen 7
T Package durchsuchen Allgemeine Java-Themen 11

Ähnliche Java Themen

Neue Themen


Oben