Frage

Versuchen Sie, wie ich könnte, ich kann nicht eine JNLP-Datei erhalten lokal auszuführen (über einen Doppelklick). Es scheint ein Problem der Lokalisierung eine JAR-Datei zu sein, auch wenn ich es in Bezug auf die jnlp-Datei angeben. Ich erhalte die folgende Fehlermeldung:

  

Das Feld href hat eine ungültige   Wert: helloworld.jar

Dies geschieht auch, wenn die JNLP-Datei in dem gleichen Ordner wie helloworld.jar ist. Ich habe Suche gemacht und dies ist ein konsequentes Problem vor allem für Menschen, die einen Antrag auf einer CD und Verwendung JNLP verpacken mögen. Die einzigen von Sun bereitgestellten „Lösung“ ist die Fähigkeit, die Code-Basis über die Kommandozeile zu spezifizieren, aber das macht nicht wirklich viel helfen. Ich verstehe nicht, warum sie nicht der Code-Basis übernehmen oder lassen werden „“ oder "file: //". - Ich habe versucht, diese Art von Dingen in der Code-Basis-Parameter des jnlp-Tag (in der Datei) und nichts funktionierte

.

Es ist sehr praktisch für mich eine JNLP-Datei zu verwenden, weil ich keine Sorge über Plattform Erkennung benötigen, native Bibliotheken oder sogar die wichtigsten JOGL JAR-Dateien; Ich schließe einfach diese Zeile und alles für mich getan wird:

<extension name="JOGL" href="http://download.java.net/media/jogl/builds/archive/jsr-231-2.0-beta10/webstart/jogl-all-awt.jnlp" />

Ich bin die Hoffnung, etwas zu finden, das die gleiche Art der Sache zu tun. Wenn nicht, ich kann manuell (oder mit Ant) greift die JOGL JAR-Dateien, es ist keine große Sache; nur eines dieser Dinge, die JNLP für mich tut und ich werde wirklich vermissen.


Was ist die beste Alternative zu JNLP Dateien, für mich lokal zu verwenden (das heißt einen Doppelklick auf laufen)? Gibt es etwas, so elegant oder brauche ich nur ein Shell-Skript für Linux, eine Batch-Datei für Windows zu schreiben, und haben Ant die entsprechenden JOGL Gläser erkennen und herunterladen?

War es hilfreich?

Lösung

Ich habe eine .jnlp-Datei wie folgt verwendet, um Java Web Start-Software zu starten lokal

  1. geben Sie den Code-Basis wie folgt: <jnlp spec="1.0+" codebase="file://localhost/X:/path/to/jnlp/" href="software.jnlp">

  2. Liste Ressourcen mit relativen Pfaden: <resources> <jar href="lib/software.jar" main="true" /> <jar href="lib/softwareLibrary.jar" main="true" /> ... </resources>

  3. und sagt schließlich Web Start, wo es die Software Einstiegspunkt in dem Topf mit main="true" markiert finden: <application-desc main-class="com.example.Main" />

Das einzige, was Sie ändern müssen, wenn remote Bereitstellung ist die Code-Basis-Parameter.

Andere Tipps

Entfernen Sie einfach die Attribute codebase und href von jnlp Tag.

<jnlp spec="1.0+">

Dieses seit Java unterstützt wird 1.6u18.

Das JNLP-System wurde mit Java 6 Update verbessert 10 (vor einiger Zeit), aber es ist immer noch recht schwer zu debuggen (vollständige Trace in der Java-Konsole ermöglicht und verstärkt durch den javaws Quellcode.

In Ihrer Situation würde ich die extra Meile gehen und bekommt es an der Arbeit. Vielleicht möchten Sie eine vollständige JNLP-Datei zur Verfügung stellen, das Problem zeigt?

Verwenden Sie ein Manifest für Ihr Glas. Dort können Sie die Hauptklasse definieren zu beginnen und die erforderlichen Bibliotheken. Siehe die Main-Klasse und die Klasse-Pfad Argumente in der Manifest-Spezifikation.

JNLP ist für Netzwerk-Abschuss entworfen (insbesondere http (s)) und ohne ein Netzwerk der Java-Implementierung wirklich verwirren lassen müssen. Selbst reife Projekte wie Eclipse-Stick mit der .sh, .bat Option.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top