Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hi!
Ich hab jetzt schon eine Weile gesucht und nix passendes fuer mein Problem gefunden - ich hoffe irgendjemand von euch kann mir helfen!
Also: ich moechte eigentlich was ganz einfaches machen: naemlich alle Files eines Directories einlesen - das funktioniert soweit auch ganz gut - aber sobald ich die Klasse in einem .jar File exportiert habe klappt das nicht mehr.
Hier ein bisschen Code:
Code:
String path = "/images/classes";
java.net.URL url = getClass().getResource(path);
logger.info("url " + url);
String fileName = url.getPath();
File file = new File(fileName);
logger.info("directory? " + file.isDirectory());
File[] files = file.listFiles();
...
Das produziert mir dann folgende Ausgaben:
INFO: url jar:file:/export/home/lisbett/work/project/dist/Jedi.jar!/images/classes
INFO: directory? false
Und dann ist files natuerlich null. :(
Frage ist nur, warum isDirectory() false zurueckliefert???? Was mache ich falsch und wie geht das richtig???
Gruss, Claudia
Hallo,
der Pafd wird nicht existieren. Ist die Frage was da aufgelistet werden soll. Mit
File file = new File(path);
System.out.println(file.getAbsoluteFile());
Kann man auf jeden Fall einen absoluten Pfad bekommen. In dem Quelltext oben sieht es ja fast so aus, als ob aus einem Jar file geladen werden soll. Oder nicht? Dann müsste man wohl den Class Loader benutzen, da dass jar wohl nicht geladen ist. Vielleicht soll es auch in einer Webanwendung sein, dann müsste man getContextPath() verwenden.
Ich denke der relative Pfad ist einfach nicht vorhanden, einfahc mal mit file.exists() testen.
Hi!
Es soll tatsaechlich aus einem jar geladen werden. In dem Jar File existiert das directory (jedenfalls kann man es sich unter netbeans angucken).
In dem directory liegen images, die ich in einer Tabelle darstellen will; in besagter Funktion versuche ich erstmal mir alle images aus dem Verzeichnis rauszusuchen; wenn ich das gleiche mit einem ganz speziellen Filenamen mache, funktioniert das - sprich folgender Code geht:
D.h. in meinen Augen wird das jar vernuenftig geladen, oder?
DasProblem scheint das directory zu sein...
Noch irgendwelche Hinweise? Hab ich vielleicht sonst was uebersehen??
Hallo,
in Jar files ist es etwas anderes, da Jar vieles Archive sind. Dort funktioniert listFiles() nicht (soweit ich weiß). Ich denke es liegt daran, dass man zum Auflisten der Files das Jar sozusagen auspacken müsste und dies kann listFiles() nicht.
Abhilfe schafft die Klasse JarEntry. Ich habe zu Testzwecken folgendes Jar angelegt: