Webstart Problem mit Adressierung bei Laden von Datei aus jar (Webstart)

gunni

Mitglied
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
Java:
URL fileURL = getClass().getResource("musterecke.3ds");

und erhalte
Code:
http://127.0.0.1/webstart/java3dTest.jar!/java3dtest/musterecke.3ds
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:
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.
 
G

Guest2

Gast
Moin,

wenn Du einen Reader brauchst, dann so:

Java:
final BufferedReader in = new BufferedReader(new InputStreamReader(getClass().getClassLoader().getResourceAsStream("java3dtest/musterecke.3ds")));

in.[..]

in.close();

Das laden von Ressourcen mit irgendwelchen "new File*" Geschichten ist scheinbar nicht auszurotten. Drum merke, wann immer es geht, einen Stream über den Classloader holen.

Gruß,
Fancy
 

gunni

Mitglied
Ja ok, so ist das natürlich viel Ordendlicher. Aber darum ging es mir nicht. Ich hab eine Loader Klasse der ich einen Pfad übergeben muss. Es gibt zwar eine Funktion wo ich einen Reader übergeben kann, allerdings bekomm ich da immer nur Null zurück. Ich kann auch leider nicht in den Source da schauen. Es kann gut sein das das einfach nicht implementiert ist.
(Falls zufällig jemand schonmal mit laden von 3ds Modellen zu tun gehabt hat, ich benutze das portfolio der ncsa. Wenn es etwas besseres gibt, bitte her damit :))
 

hansmueller

Bekanntes Mitglied
Hallo,

die Url ist nicht so ganz richtig:)
Java:
http://127.0.0.1/webstart/java3dTest.jar!/java3dtest/musterecke.3ds

Die JNLP wird von dem Programm javaws.exe abgearbeitet. Dieses lädt die Resoucen (z. B. deine Java3dTest.jar) herunter und speichert diese lokal auf dem Rechner ab. Das Problem dabei ist, daß mit den aktuellen WebStart-Versionen diese Dateien sozusagen verschlüsselt in einem dafür vorgesehenen Verzeichnis ablegt.
Wenn das Programm jetzt gestartet wird, stimmt es zwar, daß die Datei musterecke.3ds auf deinem Server in der jar liegt, aber das ist nicht die jar, welche gerade ausgeführt wird, da das Programm auf den Client und nicht auf den Server läuft.
Den tatsächlichen Pfad zur Datei (jar lokal auf dem Client) kann man meines Wissens nach nicht ermitteln. Deshalb klappt es nicht mit der Url. (Ich hoffe, ich habe jetzt keinen Stuss zusammengeschrieben.)


MfG
hansmueller
 
G

Guest2

Gast
Ich hab mir inzwischen mal diese ncsa Lib angesehen. Bei mir sind die Ergebnisse damit ähnlich. Beim Weg über den Reader bekomme ich zwar keine Null zurück, stattdessen aber eine leere Szene. Beim Weg über die URL ein "MalformedURLException: no protocol:" (bei http). Sieht für mich zumindest auch so aus, als ob zumindest der 3DS Loader davon nur mit lokalen Dateien umgehen kann.

Eine Empfehlung zu einer anderen Lib kann ich Dir aber leider auch nicht geben, da ich normalerweise weder 3DS noch Java3D Nutzer bin.

Gruß,
Fancy
 

gunni

Mitglied
Danke Hansmueller, wenn das was du sagst stimmt hab ich gleich die Argumentation warum ich es nicht "so" lösen konnte :)

Gibt es sonst eine Möglichkeit auf Dateien im Jar zuzugreifen? Wie Fancy bestätigt scheint es ja nur möglich zu sein mit dem Loader Dateien über einen Pfad zu öffnen.

Ich habe jetzt weiter etwas herumexperimentiert. Das mit dem Zugriff über einen Stream scheint zu funktionieren.
Java:
InputStream in = getClass().getResourceAsStream("musterecke.3ds");
Ich nehme mit jetzt erstmal den Stream und kopiere mir das File einfach nach "/" (mit hilfe eines einfachen FileOutputStreams) was wohl dann irgendwo in der VM vom Webstart landet.
So wie es bis jetzt aussieht kann ich das geschriebene File ganz normal Adressieren und mit meinem Loader öffnen.
Diese Lösung ist zwar nicht sehr ellegant aber sie funktioniert erstmal. Vielleicht hat ja jemand noch eine Idee wie man es besser machen könnte.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
8u3631984 Problem auf Github mit Umstellung auf Spring 3 Tools - Maven, Gradle, Ant & mehr 4
H Maven dependency Problem ? Tools - Maven, Gradle, Ant & mehr 23
H Problem beim Verschieben der main-class -> A jni error has occured, please check... Tools - Maven, Gradle, Ant & mehr 9
I Problem: Maven import extern Lib Tools - Maven, Gradle, Ant & mehr 3
S Binding-Problem von Bibliotheken bei Deployment Tools - Maven, Gradle, Ant & mehr 0
L Apache Wicket problem Tools - Maven, Gradle, Ant & mehr 4
L Maven Encoding Problem bei Resourcen Tools - Maven, Gradle, Ant & mehr 3
C Git Problem Tools - Maven, Gradle, Ant & mehr 3
C Kleines Problem mit Maven und Resourcen. Tools - Maven, Gradle, Ant & mehr 3
R IntelliJ IDEA und Git - Problem Tools - Maven, Gradle, Ant & mehr 2
E Ant Problem mit Abhängigkeiten Tools - Maven, Gradle, Ant & mehr 2
GianaSisters Ant jUnit und Ant Problem Tools - Maven, Gradle, Ant & mehr 2
D [maven] problem mit konfiguration von cargo plugin Tools - Maven, Gradle, Ant & mehr 4
D [Maven] problem mit plugin - es fehlen "dubug informationen" Tools - Maven, Gradle, Ant & mehr 8
H Applet Problem mit Security Exception Tools - Maven, Gradle, Ant & mehr 3
M Maven Problem bei Ersetzung von POM-Properties Tools - Maven, Gradle, Ant & mehr 7
M Applet USB Stick Problem Tools - Maven, Gradle, Ant & mehr 3
D Firmen pom mit eigenem Releasezyklus - Problem Tools - Maven, Gradle, Ant & mehr 2
reibi Maven Problem eclipse_eclipse mit Installed JREs Tools - Maven, Gradle, Ant & mehr 6
F Problem beim Kompilieren ohne IDE Tools - Maven, Gradle, Ant & mehr 5
T Maven Problem by crearting a new project with "mvn archetype:create" Tools - Maven, Gradle, Ant & mehr 2
J Ant Ant Skript Problem mit generischen Datentypen Tools - Maven, Gradle, Ant & mehr 8
reibi Maven resources - Problem Tools - Maven, Gradle, Ant & mehr 4
S Webstart Problem beim Start von Webstart Tools - Maven, Gradle, Ant & mehr 4
H Java Applet Problem beim einbinden in HTML Tools - Maven, Gradle, Ant & mehr 3
F Webstart JNLP Problem mit LIB Tools - Maven, Gradle, Ant & mehr 3
A Ant Problem mit classpath Tools - Maven, Gradle, Ant & mehr 8
T Problem mit Maven Assembly ... Tools - Maven, Gradle, Ant & mehr 6
S Problem bei Nutzung einer eigenen EJB in einem Servlet Tools - Maven, Gradle, Ant & mehr 2
V applet Java 1.6 -> 1.5 Problem ... wie mit Ant zu lösen? Tools - Maven, Gradle, Ant & mehr 7
E Java Applet - Double Buffering Problem (Flackern) Tools - Maven, Gradle, Ant & mehr 6
N Problem mit Ant Classpath und Junit: Relative Pfade Tools - Maven, Gradle, Ant & mehr 2
M Dringend: Sehr kompliziertes Applet Problem Tools - Maven, Gradle, Ant & mehr 4
H Problem mit einen Applet Tools - Maven, Gradle, Ant & mehr 5
G Problem beim deployen eines Applets Tools - Maven, Gradle, Ant & mehr 8
G Applet Security Problem Tools - Maven, Gradle, Ant & mehr 3
S Problem mit Webstart Tools - Maven, Gradle, Ant & mehr 5
zilti Problem mit Object-Tag Tools - Maven, Gradle, Ant & mehr 3
zilti Applet einbinden: Problem Tools - Maven, Gradle, Ant & mehr 6
N Problem mit Applets in HTML Seite integrieren Tools - Maven, Gradle, Ant & mehr 3
D JFileChooser Problem - Verzweifelt Tools - Maven, Gradle, Ant & mehr 4
G Problem mit JApplet bzw Applet Tools - Maven, Gradle, Ant & mehr 5
J Problem beim schreibenden Dateizugriff Tools - Maven, Gradle, Ant & mehr 7
R problem mit kollision von objekten Tools - Maven, Gradle, Ant & mehr 5
G 2 Problem mit dem ScrollPane Tools - Maven, Gradle, Ant & mehr 2
D Properties File FileInputStream Problem Tools - Maven, Gradle, Ant & mehr 2
B Permissions Problem mit zwei Applets Tools - Maven, Gradle, Ant & mehr 2
P Problem beim Senden einer Datei Tools - Maven, Gradle, Ant & mehr 5
E Problem mit signiertem Applet und Parametern Tools - Maven, Gradle, Ant & mehr 4
C drawImage Problem und Applet not inited Tools - Maven, Gradle, Ant & mehr 7
B Server Problem mit Applet start Tools - Maven, Gradle, Ant & mehr 8
V komisches Problem mit Eclipse - oberste Pixel verdeckt Tools - Maven, Gradle, Ant & mehr 3
U JTextPane Problem Tools - Maven, Gradle, Ant & mehr 15
M Applet JRE Versions Problem Tools - Maven, Gradle, Ant & mehr 3
G Problem mit dem schreiben von Datein auf einem Server Tools - Maven, Gradle, Ant & mehr 11
G Web start problem Tools - Maven, Gradle, Ant & mehr 9
X Problem mit Bilder laden Tools - Maven, Gradle, Ant & mehr 3
J Laufzeitumgebung wechseln --> Problem Tools - Maven, Gradle, Ant & mehr 5
D Problem bei der Ausgabe in einem Applet Tools - Maven, Gradle, Ant & mehr 3
T Java Applet - Problem mit Tastatur Abfrage Tools - Maven, Gradle, Ant & mehr 5
F PQ-Formel berechnen -> kleines Problem Tools - Maven, Gradle, Ant & mehr 3
G Mal wieder ein Problem mit Applet und Bildern. Tools - Maven, Gradle, Ant & mehr 3
P Grundsätzliches Problem, Applet aktutalisieren Tools - Maven, Gradle, Ant & mehr 2
R Gif Animation / Problem Tools - Maven, Gradle, Ant & mehr 4
D Applet Dateizugriff unter UNIX und TextListener Problem Tools - Maven, Gradle, Ant & mehr 19
D Problem beim einbinden von jar und class datei Tools - Maven, Gradle, Ant & mehr 8
R URL Problem Tools - Maven, Gradle, Ant & mehr 5
D Problem mit Applet Tools - Maven, Gradle, Ant & mehr 3
P Eclipse Problem beim JAR-erstellen Tools - Maven, Gradle, Ant & mehr 5
D problem beim auslesen von text aus einem textfeld... Tools - Maven, Gradle, Ant & mehr 15
J Problem mit Panel Tools - Maven, Gradle, Ant & mehr 2
L problem mit java plug-in Tools - Maven, Gradle, Ant & mehr 1
G Problem mit URL Tools - Maven, Gradle, Ant & mehr 3
S Problem: Bild im Applet wird 3-4 Mal geladen Tools - Maven, Gradle, Ant & mehr 5
B Webstart Java Webstart hängt sich beim Laden auf! Tools - Maven, Gradle, Ant & mehr 8
T Webstart Resource aus .jar laden Tools - Maven, Gradle, Ant & mehr 5
S .jars in einem Ornder automatisch laden lassen Tools - Maven, Gradle, Ant & mehr 2
H Applet applet neu laden im browser Tools - Maven, Gradle, Ant & mehr 10
K Webstart .class Datei über Reflection laden Tools - Maven, Gradle, Ant & mehr 3
E Webstart Laden von Tiff-Bildern als BufferedImage und TFW aus einem JAR Tools - Maven, Gradle, Ant & mehr 3
G Textfile in Applet laden möglich? Tools - Maven, Gradle, Ant & mehr 2
U Zertifikat zum Signieren in keytool laden Tools - Maven, Gradle, Ant & mehr 2
T Maven: Abhängigkeit im Jetty laden Tools - Maven, Gradle, Ant & mehr 10
B Hudson - Resourcen laden Tools - Maven, Gradle, Ant & mehr 11
Icewind Applet reagiert nach neu laden der Webseite nicht mehr verlässlich auf KeyEvents Tools - Maven, Gradle, Ant & mehr 6
grudge File in Applet laden Tools - Maven, Gradle, Ant & mehr 4
S Ladebalken beim laden des Applets Tools - Maven, Gradle, Ant & mehr 9
S HttpClient in Applet - html-quellcode laden möglich? Tools - Maven, Gradle, Ant & mehr 3
S Applet schneller laden Tools - Maven, Gradle, Ant & mehr 4
D Fehler beim Applet laden! Tools - Maven, Gradle, Ant & mehr 9
G Bilder von Server Laden Tools - Maven, Gradle, Ant & mehr 4
S applet ueber mehrere ordner hinweg laden Tools - Maven, Gradle, Ant & mehr 2
C Applet + Treiber laden (J/Connector) Tools - Maven, Gradle, Ant & mehr 2
G Java Applet neu laden Tools - Maven, Gradle, Ant & mehr 3
D Im Hintergrund laden Tools - Maven, Gradle, Ant & mehr 5
A JNLP Datei aus Application laden Tools - Maven, Gradle, Ant & mehr 4
K .class variabel laden Tools - Maven, Gradle, Ant & mehr 21
M URL im Browser laden? Tools - Maven, Gradle, Ant & mehr 9
saxos1983 Fehlerüberprüfung beim Laden von Bilder Tools - Maven, Gradle, Ant & mehr 3
S Aus Applet per Button-Klick anderes Applet in Browser laden Tools - Maven, Gradle, Ant & mehr 7

Ähnliche Java Themen

Neue Themen


Oben