Hi,
ich habe hier eine kleine Webstart Anwendung die eine 3ds Datei einlesen und anzeigen soll. Solang ich sie als einfache Java Anwendung ausführe funktioniert auch alle Prima aber wenn ich die Anwendung als Webstart ausliefere gibt es Probleme mit dem zugriff auf die zu ladende Datei.
Vorweg, ich benutze netbeans 6.7.1 (auch zum generieren des ganzen webstart zeugs). Die Datei ist im Projekt direkt neben den Source files platziert und wird auch mit ins Jar gepackt.
Um späteren erklärungen vorzubeugen poste ich gleich nochmal mein jnlp File.
[XML]<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<jnlp codebase="http://127.0.0.1/webstart/" href="launch.jnlp" spec="1.0+">
<information>
<title>Java3dTest</title>
<vendor>gunni</vendor>
<homepage href=""/>
<description>Java3dTest</description>
<description kind="short">Java3dTest</description>
</information>
<security>
<all-permissions/>
</security>
<resources>
<j2se version="1.6+"/>
<jar eager="true" href="Java3dTest.jar" main="true"/>
<jar href="lib/portfolio.jar"/>
</resources>
<application-desc main-class="java3dtest.Welt">
</application-desc>
</jnlp>
[/XML]
Um auf die Datei zugriefen zu können hole ich mir erstmal eine URL mit getResource
und erhalte
soweit so gut.
wenn ich jetz testweise mit einem FileReader versuche anhand der URL (bzw URL.getpath()) darauf zuzugreifen funktioniert das nicht (FileNotFoundException). Dazu der Code:
Ich habe jetzt schon viel herumprobiert. Zum URL laden getSystemresource, wo aber nie eine URL zurück kam. Ich hab den Pfad leicht angepasst auf die unterordner im Jar, was aber auch kein ergebnis lieferte.
Ich bin jetzt mit meinem Laienwissen so ziemlich am Ende und habe folgende Fragen.
Ist eine URL (also http:// usw) überhaupt ein gültiger "Pfad" für eine Java Klasse? Liegt das Ganze evtl daran das der Pfad über "jar Grenzen" hinweg (!) geht? Muss ich das Jar vorher evtl Laden um per Hand die Datei Rausholen bzw Adressieren zu können?
Oder gibt es eine ganz andere Methode wie man Dateien aus Jar Files Laden kann?
Ich bin über jede Hilfe dankbar. Wenn noch Fragen zu irgendwelchen Einzelheiten sind, bitte Stellen. Ich schau hier alle paar Stunden rein.
ich habe hier eine kleine Webstart Anwendung die eine 3ds Datei einlesen und anzeigen soll. Solang ich sie als einfache Java Anwendung ausführe funktioniert auch alle Prima aber wenn ich die Anwendung als Webstart ausliefere gibt es Probleme mit dem zugriff auf die zu ladende Datei.
Vorweg, ich benutze netbeans 6.7.1 (auch zum generieren des ganzen webstart zeugs). Die Datei ist im Projekt direkt neben den Source files platziert und wird auch mit ins Jar gepackt.
Um späteren erklärungen vorzubeugen poste ich gleich nochmal mein jnlp File.
[XML]<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<jnlp codebase="http://127.0.0.1/webstart/" href="launch.jnlp" spec="1.0+">
<information>
<title>Java3dTest</title>
<vendor>gunni</vendor>
<homepage href=""/>
<description>Java3dTest</description>
<description kind="short">Java3dTest</description>
</information>
<security>
<all-permissions/>
</security>
<resources>
<j2se version="1.6+"/>
<jar eager="true" href="Java3dTest.jar" main="true"/>
<jar href="lib/portfolio.jar"/>
</resources>
<application-desc main-class="java3dtest.Welt">
</application-desc>
</jnlp>
[/XML]
Um auf die Datei zugriefen zu können hole ich mir erstmal eine URL mit getResource
Java:
URL fileURL = getClass().getResource("musterecke.3ds");
und erhalte
Code:
http://127.0.0.1/webstart/java3dTest.jar!/java3dtest/musterecke.3ds
wenn ich jetz testweise mit einem FileReader versuche anhand der URL (bzw URL.getpath()) darauf zuzugreifen funktioniert das nicht (FileNotFoundException). Dazu der Code:
Java:
FileReader fr = new FileReader(fileURL.getPath());
Ich habe jetzt schon viel herumprobiert. Zum URL laden getSystemresource, wo aber nie eine URL zurück kam. Ich hab den Pfad leicht angepasst auf die unterordner im Jar, was aber auch kein ergebnis lieferte.
Ich bin jetzt mit meinem Laienwissen so ziemlich am Ende und habe folgende Fragen.
Ist eine URL (also http:// usw) überhaupt ein gültiger "Pfad" für eine Java Klasse? Liegt das Ganze evtl daran das der Pfad über "jar Grenzen" hinweg (!) geht? Muss ich das Jar vorher evtl Laden um per Hand die Datei Rausholen bzw Adressieren zu können?
Oder gibt es eine ganz andere Methode wie man Dateien aus Jar Files Laden kann?
Ich bin über jede Hilfe dankbar. Wenn noch Fragen zu irgendwelchen Einzelheiten sind, bitte Stellen. Ich schau hier alle paar Stunden rein.