ERLEDIGT
NEIN
NEIN
ANTWORTEN
0
0
ZUGRIFFE
550
550
EMPFEHLEN
-
06.12.11 12:36 #1
- Registriert seit
- Nov 2011
- Beiträge
- 1
Hallo Leute.
Das hier ist mein erstes Posting, umso kniffliger wird es.
Wenigstens ich komm nicht voran.
Ähnliche Probleme (Durchsuchen eines Packages im Jar) wurde schon gepostet. Und auch andere haben Probleme damit ein Package innerhalb eines Jar-Files zu durchsuchen, das per Webstart geladen und ausgeführt wurde. Leider konnte ich einfach keine funktionierende Lösung finden. Ihr seid also meine letzte Hoffnung!
Hier mal ein kleines Stückchen von dem Code, der je nach Variante, entweder aus der IDE oder dem Jar, Files (Icons) aus einem bestimmten Verzeichnis laden soll.
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
private List<File> loadFilesUsingClassLoader(String packageName, String suffix) { ArrayList<File> files = new ArrayList<File>(); URL imgURL = DrbFileFinder.class.getClassLoader().getResource(packageName); if (imgURL != null) { File file = new File(imgURL.getFile()); if (file != null) { String[] imgs = file.list(); for (String s : imgs) { if (s.endsWith(suffix)) { files.add(new File(file.getAbsolutePath() + "/" + s)); } } } return files; } return null; }
Die erste Methode ist die, die aufgerufen wird, wenn die Software per Webstart gestartet wird. Der ClassLoader scheint hier lediglich in der Lage, Files direkt zu finden. Nicht jedoch ein "Verzeichnis".
Code java:1 2 3 4 5 6 7 8 9 10 11 12
private List<File> loadFilesUsingJar(String packageName, String suffix) { ArrayList<File> files = new ArrayList<File>(); Enumeration<JarEntry> entries = jar.entries(); while (entries.hasMoreElements()) { JarEntry entry = entries.nextElement(); if (entry.getName().startsWith(packageName) && entry.getName().endsWith(suffix)) { files.add(new File(entry.getName())); } } return files; }
Diese Methode wird bei einem Webstart-Start nicht aufgerufen, da das Jar-File nicht geladen werden kann weil die Jar-URL folgendermaßen aussieht:
http://name.des.server.de:8000/pfad/...p/programm.jar
Natürlich könnte ich das Jar-File nocheinmal herunter laden. Doch irgendwie kann das nicht im Sinner des Erfinders sein. Oder wird das File so gecached, dass man da irgendwie herankommt, um es als JarFile doch noch zu laden?
Das Jar-File hab ich folgendermaßen lokalisiert (Könnte sogar sein, dass ich den Tip dafür mal hier gesehen habe):
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
private static File getJarLocation() { ProtectionDomain pd = DrbFileFinder.class.getProtectionDomain(); CodeSource cs = pd.getCodeSource(); URL loc = cs.getLocation(); File jarLocation = null; try { jarLocation = new File(loc.toURI()); if (jarLocation.isFile()) { return jarLocation; } } catch (URISyntaxException e) { System.err.println(e.getMessage()); } catch (IllegalArgumentException e) { return null; } return null; }
Mein Ziel ist es, letztlich in programm.jar auf das images/ -Verzeichnis zuzugreifen und dort alle Images zu finden.
Ich hoffe, ihr könnte mir helfen. Und ich hoffe, ich habe mein Problem einigermaßen verständlich formuliert.
Gruß,
LarsGeändert von Lars Marondel (06.12.11 um 18:00 Uhr)
Ähnliche Themen
-
WebStart erkennen
Von EvilHomy im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 10Letzter Beitrag: 22.01.09, 20:07 -
RCP und Webstart
Von SirWayne im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 0Letzter Beitrag: 10.07.08, 13:34 -
Java WebStart
Von Matze82 im Forum JavaAntworten: 6Letzter Beitrag: 21.12.07, 14:44 -
WebStart + EJB
Von Chris1079 im Forum JavaAntworten: 3Letzter Beitrag: 05.12.07, 07:53 -
Ordner Inhalt auflisten! :confused:
Von marcaurel1984 im Forum Borland CBuilder und VCLAntworten: 2Letzter Beitrag: 06.06.05, 21:46





Zitieren
Login





