Laden von Dateien mit und ohne JavaWebStart

Purgator

Aktives Mitglied
Hallo,
ich habe wieder ein kleines Problem.
Eine Anwendung wird eventuell mittels JavaWebStart gestartet - kann aber auch "ganz normal" gestartete werden.
Diese Anwendung benötigt nun Ressourcen, wie xml-Dateien. WebStart nimmt diese ja nur, wenn sie in einer Jar sind - findet diese dann aber egal in welcher Jar-Datei sie sind. Man muss also nicht angeben, in welcher jar-Datei man nach der xml-Datei sucht (wir nutzen derzeit Klassenname.class.getRessource(pfad)).
Wenn die Anwendung jetzt "normal" ausgeführt wird, sind die Ressourcen in keiner jar Datei (haben aber an sich den gleichen Pfad). Nun hatten wir gehofft, dass man mit Klassenname.class.getRessource(pfad) die Datei auch bekommt wenn sie in keiner jar-Datei ist - dies ist aber offensichtlich nicht der Fall.
Gibt es eine einfache Möglichkeit zu versuchen die Ressourcen aus einer jar zu laden und wenn das nicht geht direkt vom dateisystem?
Weil im Moment würde ich sonst eine Methode getRessource(String path) schreiben, welche zuerst versucht mittels der getRessource-Methode an die Daten aus der jar zu kommen - wenn dies nicht klappt noch versucht die Daten vom lokalen Dateisystem zu holen.
Ich hatte aber gehofft da gibt es etwas vorgefertigtes, professionelles, weil die im Moment geplante Lösung wirkt auf mich irgendwie unschön.
 
>> Klassenname.class.getRessource(pfad)

gib mal einen Beispiel- Pfad an.
So weit ich weiß, liegt ja beim WebStart die ganze Applikation in einer JAR auf dem Server vor, also JAR und XML- Dateien sind in der selben JAR.

Wie startest du die Applikation sonst, mit einer *.bat, sh oder Öffnen mit ... Platfom(TM) SE Binary?
lg
 
Hallo,

warum so kompliziert? Was spricht dagegen, wenn für WebStart die xml-Datei schon in einer Jar ist, auch bei dem "ganz normal"-Programm die xml-Datei in einem Jar zu lassen. Du brauchst nur die Jar im Classpath der Manifestdatei angeben, das sollte eigendlich reichen.

@MQue: Man muß die WebStart-Anwendung nicht in eine einzige Jar packen. Man kann so viele Jars benutzen, wie man will bzw. wie man braucht.

Außerdem, warum läßt du es nicht komplett über WebStart laufen. Inzwischen funktioniert auch der Offline-Modus richtig. (War in den alten JRE-Versionen noch ganz schön verhunzt.)
Und man kann sich einen Startmenüeintrag und ein schönes Icon auf den Desktop machen lassen.

Wenn es um die Offline-Installation geht, schau dir mal diesen Artikel an:
Distributing a Java Web Start Application via CD-ROM | Java.net

MfG
hansmueller
 
Aloha,
danke erstmal für die Antworten.
Normalerweise wird die Applikation als runnable jar weitergegeben - die Ressource-xml-Dateien sind jedoch ausserhalb dieser. Derzeit sind die xml Dateien einfach im selben Ordner wie die Jar-Datei, weswegen der "pfad" einfach der Dateiname ist.
Das mit den 2 Jar Dateien hatte folgenden Grund:
Je nachdem welche xml Datei vorhanden ist, verhält sich das Programm anders - mein Kollege hat irgendwas mit php gemacht (muss zugeben, was genau, sowie von dieser Scriptsprache, habe ich 0 Ahnung). Dadurch konnte man im Browserlink praktisch die Ressource-jar-Datei mit angeben und WebStart wurde mit der eigentlichen Jar, verbunden mit dieser Ressource-Jar, gestartet.
Sinn davon sollte sein, dass die späteren Nutzer immer nur kleine Jar-s mit xml-files hochladen müssen und das eigentliche Programm nicht redundant vorhanden ist.

Das ganze mit Java-Web-Start zu machen war ursprünglich gar nicht angedacht und mussten wir jetzt auch wieder verwerfen. Daher Entschuldigung für die Zeitverschwendung.
Grund dafür ist, dass unser Programm an etlichen stellen Files nutzt und z.B. File.exists() aufruft. Da wir keine signierte Applikation benutzen (wollen) schmeißt der uns immer Security Fehler.
Um das zu umgehen fiel uns bisher nichts ein, ausser in einigen Teilen eine Programmparallelentwicklung zu machen (so dass wir am Ende ein Programm für Java-Web-Start nutzen uns eines für den "normalen" Betrieb). Da wir das auch nicht wollen, haben wir uns dafür entschieden auf WebStart ganz zu verzichten.
 

Zurück
Oben