Ich habe eine dringende Frage bezüglich dem Java Webstart.
Auf einem IIS-Webserver ist eine Webstartanwendung eingerichtet... auf diesem Server verwenden wir die JRE 1.6u18... über Webstart wollen wir eine Anwendung verteilen, die beim Client unter der JRE-Version 1.4.2 läuft... nun ist es so, dass bei einigen Anwendern keinerlei Probleme existieren. Sie klicken auf den entsprechenden Link und die Anwendung wird über Webstart gestartet.
Andere Nutzer bekommen folgende Fehlermeldung...
java.lang.NoClassDefFoundError: java/security/CodeSigner
at com.sun.javaws.security.SigningInfo.setContains(Unknown Source)
at com.sun.javaws.security.SigningInfo.overlapChainLists(Unknown Source)
at com.sun.javaws.LaunchDownload.checkSignedResourcesHelper(Unknown Source)
at com.sun.javaws.LaunchDownload.checkSignedResources(Unknown Source)
at com.sun.javaws.Launcher.prepareLaunchFile(Unknown Source)
at com.sun.javaws.Launcher.prepareToLaunch(Unknown Source)
at com.sun.javaws.Launcher.prepareToLaunch(Unknown Source)
at com.sun.javaws.Launcher.launch(Unknown Source)
at com.sun.javaws.Main.launchApp(Unknown Source)
at com.sun.javaws.Main.continueInSecureThread(Unknown Source)
at com.sun.javaws.Main$1.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Nun frage ich mich allerdings, wo genau das Problem liegt. Warum funktioniert es bei einigen Anwendern, und andere bekommen diesen Fehler? Alle Anwender haben die gleiche jre-Version auf dem Rechner installiert, die Basis-Installation des Betriebssystems ist die gleich...
Kann mir hier jemand nähere Informationen geben? Wenn noch Infos gebraucht werden, reiche ich diese natürlich nach.
ein merkwürdiger Fehler. Besonders wenn die JRE-Versionen und die Basisinstallation gleich sind. (Das kommt aber öfter vor als man denkt. Schon merkwürdig, wenn man mehrere gleiche Rechner hat, diese sich aber verschieden verhalten. Trotz Massenproduktion scheint es da doch einen Individualismus zu geben.)
Anscheinden wird die Klasse CodeSigner nicht gefunden.
Warum spendierst du den Clients nicht ein JRE-Update? 1.4.2 ist nicht gerade aktuell. Vielleicht löst das dein Problem. (Meines Wissens nach, steckte WebStart in der JRE-Version 1.4 noch in den Kinderschuhen. Da hat sich inzwischen eine Menge getan.) Und mit WebStart kannst du in der JNLP-Datei angeben, welche JRE-Version verwendet werden soll. Somit umgehst du evtl. Kompatibilitätsprobleme was die JRE-Versionen angeht (bezogen auf das Kompilieren).
Es wäre evtl. noch interessant, was für ein Betriebsystem, Prozessor etc. die Clients haben.
Das Problem ist, dass die Anwendung, die wir verteilen wollen, zwingend die jre-Version 1.4.2u15 benötigt... von daher muss, meines Wissens nach, diese jre-Version auch auf dem Client installiert bzw. zur Verfügung gestellt worden sein. Daneben läuft aber auf den Clients auch noch die jre-Version 1.6.0u16.
Betriebssystem: Windowx XP SP3
Arbeitsspeicher: 2GB
WebStart lädt die benötigte JRE automatisch nach (sollte es zumindest (unter MS Windows)). Es muß natürlich in der JNLP drin stehen, welche JRE verwendet werden soll.
Ich gehe mal davon aus, das die Path-Verweise alle auf die JRE-Version 1.6.0_16 verweisen. (Und somit auch die "aktuellere" javaws.exe (=WebStart) für das Ausführen der JNLP verwendet wird.)
Vielleicht ist bei einigen Rechner der Pfad falsch?
Ansonsten probier mal bei den Rechnern, die Probleme machen ein Update auf die Version 1.6.0_21 aus.
Neben der benötigten jre-Version 1.4.2 ist auf den entsprechenden Rechnern die jre-Version 1.6u16 installiert gewesen. Hier gab es aber laut sun ein paar Bugs, die das Arbeiten mit der jre 1.4 unmöglich gemacht haben. Nun wurde das Release 18 eingespielt und Webstart läuft auf allen Clients problemlos.