Webstart

jgh

Top Contributor
Moin moin,

ich habe eine Desktop-Applikation, die ich gerne über Webstart den Auftraggebern zur Verfügung stellen würde.
Also habe ich mir, die Java-Seite angeschaut...und mir folgendes html-Document geschrieben.

HTML:
<html>
<body>
   
    <script src="http://www.java.com/js/deployJava.js"></script>
    <script>
        // using JavaScript to get location of JNLP file relative to HTML page
        var dir = location.href.substring(0, location.href.lastIndexOf('/')+1);
        var url = dir + "/Verkaufstrichter/verkaufstrichter-webstart.jnlp";
        deployJava.createWebStartLaunchButton(url, '1.6.0');
    </script>
 
</body>
</html>

beides liegt auf dem Desktop (sowohl das html-File, als auch ein Ordner Verkaufstrichter, der [c]verkaufstrichter-webstart.jnlp[/c] sowie alle weiteren Jars beinhaltet!

soweit so gut...ich bekomme eine Webseite angezeigt, die einen Launch-Button hat und die VERSUCHT^^ meine Applikation zu laden.

meine JNLP-Datei sieht wie folgt aus:
[XML]
<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+"
codebase=".//Verkaufstrichter"
href="verkaufstrichter-webstart.jnlp">
<information>
<title>Verkaufstrichter</title>
<vendor>Thiemann</vendor>
</information>
<resources>
<!-- Application Resources -->
<j2se version="1.6+"
href="http://java.sun.com/products/autodl/j2se"/>
<jar href="./Verkaufstrichter" main="true" />

</resources>
<application-desc
name="Verkaufstrichter"
main-class="Installer"
width="800"
height="600">
</application-desc>
<update check="background"/>
</jnlp>
[/XML]

ich habe schon einiges probiert, insbesondere mit [c]/[/c] , [c]//[/c] , [c]\[/c] und [c]\\[/c]
aber evtl. kann mir jemand kurz erklären, wie ich dieses Ding anständig zum laufen bekomme, bzw. ob ich class-Dateien zusätzlich irgendwo reinpacken muss, ob meine Verweise richtig gesetzt sind.

Vielen Dank schonmal 🙂

Es erscheint eine Meldung, die Anwendung konnte nicht gestartet werden. Und ein zweites "JOptionPane(?)" in der Webstart die Anwendung laden will...aber nicht kann:

Ach ja...die Fehlermeldung:
Java:
com.sun.deploy.net.FailedDownloadException: Ressource konnte nicht geladen werden: file:/C:/Users/Cheffe/Desktop/Verkaufstrichter/Verkaufstrichter//
	at com.sun.deploy.net.DownloadEngine.actionDownload(Unknown Source)
	at com.sun.deploy.net.DownloadEngine.getCacheEntry(Unknown Source)
	at com.sun.deploy.net.DownloadEngine.getCacheEntry(Unknown Source)
	at com.sun.deploy.net.DownloadEngine.getResourceCacheEntry(Unknown Source)
	at com.sun.deploy.net.DownloadEngine.getResourceCacheEntry(Unknown Source)
	at com.sun.deploy.net.DownloadEngine.getResource(Unknown Source)
	at com.sun.javaws.LaunchDownload$DownloadTask.call(Unknown Source)
	at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
	at java.util.concurrent.FutureTask.run(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
bzw. die gekappselte Ausnahmemeldung:
Java:
java.io.IOException: Invalid jar file
	at com.sun.deploy.net.HttpDownloadHelper.download(Unknown Source)
	at com.sun.deploy.cache.Cache.downloadResourceToTempFile(Unknown Source)
	at com.sun.deploy.cache.Cache.downloadResourceToCache(Unknown Source)
	at com.sun.deploy.net.DownloadEngine.actionDownload(Unknown Source)
	at com.sun.deploy.net.DownloadEngine.getCacheEntry(Unknown Source)
	at com.sun.deploy.net.DownloadEngine.getCacheEntry(Unknown Source)
	at com.sun.deploy.net.DownloadEngine.getResourceCacheEntry(Unknown Source)
	at com.sun.deploy.net.DownloadEngine.getResourceCacheEntry(Unknown Source)
	at com.sun.deploy.net.DownloadEngine.getResource(Unknown Source)
	at com.sun.javaws.LaunchDownload$DownloadTask.call(Unknown Source)
	at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
	at java.util.concurrent.FutureTask.run(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)

edit:
invalid dürfte das jar-file nur sein, weil er es nicht findet...ansonsten kann ich das ohne probleme starten. (händisch)
 
Zuletzt bearbeitet:
Moin,

(a) hier mal eine recht gute Doku zu dem Thema:
Java Web Start

(b) mir sind spontan folgende Dinge aufgefallen (ohne jetzt die Details Deiner Installation zu kennen) :
Unter "resources" hast Du folgenden Eintrag:
[XML]
<jar href="./Verkaufstrichter" main="true" />
[/XML]
den würde ich mal wie folgt abändern:
[XML]
<jar href="./Verkaufstrichter.jar"/>
[/XML]
Die Angabe des MAIN ist nicht zwingend ... und ich hoffe, das es wirklich eine .jar-Datei im angegebenen Verzeichnis "./" ist 😉

(c) zu
[XML]
<application-desc
main-class="Installer"
[/XML]
Heißt die Klasse wirklich nur "Installer" - und liegt sie in der obersten Package-Ebene ???:L
Andernfalls würde sie so wohl nicht erkannt ....

Gruß
Klaus
 
erstmal pauschal Danke...hat mich eben echt gefreut, dass du zu dem Thema geantwortet hast 🙂

da konnte ich mir in Ruhe Frühstück machen...werde mir mal deinen Link anschauen, aber vorher die Änderungen ausprobieren..evtl gehts ja auch ohne 😀

zu (b) aber es gibt (auf der Ebene Desktop) nur einen Ordner Verkaufstrichter, in dem sich dann die Verkaufstrichter.jar und die Installer.jar befinden.
Ich will allerdings die Installer.jar aufrufen

zu (c)
ne, die heißt natürlich Installer.jar und befindet sich im Ordner Verkaufstrichter. 😉
 
Zuletzt bearbeitet:
Hallo,

ich würde es mal so versuchen:
Java:
<resources>
        <!-- Application Resources -->
        <j2se version="1.6+"
              href="http://java.sun.com/products/autodl/j2se"/>
        <jar href="Verkaufstrichter.jar" main="true" />
 
    </resources>

Die codebase ist so eine Art automatische Hilfvariable für den Pfad, damit man nicht immer bei jeder Datei den ganzen Pfad schreiben muß.
Nach meinen Verständnis müßte WebStart dann folgenden Pfad für die Jar verwenden:
.//Verkaufstrichter/Verkaufstrichter.jar

Die codebase=".//Verkaufstrichter" sieht ein bißchen komisch aus. Aber wenn ich mir die Fehlermeldung anschaue, scheint es zu funktionieren.

MfG
hansmueller
 

Zurück
Oben