Lokale Alternative zur JNLP-Datei?

8

Wie dem auch sei, ich kann keine JNLP-Datei lokal ausführen lassen (per Doppelklick). Es scheint ein Problem zu sein, eine JAR-Datei zu finden, auch wenn ich sie relativ zur jnlp-Datei spezifiziere. Ich erhalte den folgenden Fehler:

  

Das Feld & lt; jar & gt; href hat ein ungültiges Feld   Wert: helloworld.jar

Dies passiert auch dann, wenn sich die JNLP-Datei im selben Ordner wie helloworld.jar befindet. Ich habe Suchen durchgeführt, und dies ist ein konsistentes Problem, besonders für Leute, die eine Anwendung auf einer CD verpacken und JNLP verwenden möchten. Die einzige von Sun bereitgestellte "Lösung" ist die Möglichkeit, die Codebasis über die Befehlszeile anzugeben, aber das hilft nicht wirklich viel. Ich verstehe nicht, warum sie nicht annehmen oder erlauben, dass die Codebasis "." oder "file: //." - Ich habe diese Art von Dingen im Codebase-Parameter des jnlp-Tags (innerhalb der Datei) versucht und nichts hat funktioniert.

Es ist sehr praktisch für mich, eine JNLP-Datei zu verwenden, da ich mich nicht um die Plattformerkennung, native Bibliotheken oder sogar die JOGL-JAR-Hauptdateien kümmern muss. Ich füge einfach diese Zeile ein und alles ist für mich erledigt:

%Vor%

Ich hoffe, etwas zu finden, das die gleiche Sache machen kann. Wenn nicht, kann ich manuell (oder mit Ant) die JOGL-Jar-Dateien greifen, das 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, die ich lokal verwenden kann (d. h. Doppelklick zum Ausführen)? Gibt es etwas so Elegantes oder muss ich nur ein Shell-Skript für Linux schreiben, eine Batch-Datei für Windows, und muss Ant die entsprechenden JOGL-Jars erkennen und herunterladen?

    
Ricket 09.01.2010, 05:47
quelle

6 Antworten

19

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

  1. geben Sie die Codebasis wie folgt an: <jnlp spec="1.0+" codebase="file://localhost/X:/path/to/jnlp/" href="software.jnlp">

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

  3. und schließlich Web Start mitteilen, wo der Software-Einstiegspunkt in dem mit main="true" : <application-desc main-class="com.example.Main" />

  4. markierten Jar gefunden werden kann

Das einzige, was Sie bei einer Remote-Bereitstellung ändern müssen, ist der Codebasis-Parameter.

    
Riku Lindblad 10.03.2010, 13:00
quelle
4

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

%Vor%

Dies wird seit java 1.6u18 unterstützt.

    
Daniel De León 21.06.2012 06:01
quelle
2

Das JNLP-System wurde mit Java 6 Update 10 verbessert (eine Weile zurück), aber es ist immer noch ziemlich schwierig zu debuggen (vollständige Ablaufverfolgung in der Java-Konsole aktivieren und durch den Java-Quellcode gehen).

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

    
quelle
1

Verwenden Sie ein Manifest für Ihr Glas. Dort können Sie die zu startende Hauptklasse und die benötigten Bibliotheken definieren. Siehe die Argumente Main-class und Class-path in der Manifestspezifikation.

    
Daniel Hiller 09.01.2010 06:25
quelle
0

Wie Daimler vorgeschlagen hat, ermöglicht das Hinzufügen eines Manifests zu Ihrem JAR Benutzern das Ausführen von einer physischen Kopie ohne Netzwerkzugriff. Fügen Sie zusätzlich ein .jnlp , das auf eine lokale JAR verweist, ein .jnlp ein, das auf Ihre Website verweist. Dadurch können Benutzer die neueste und beste Version Ihres Programms ausführen und einfach eine Verknüpfung für zukünftige Referenz installieren.

    
trashgod 09.01.2010 09:36
quelle
0

JNLP ist für das Starten von Netzwerken (speziell http (s)) konzipiert und ohne ein Netzwerk muss die Java-Implementierung wirklich durcheinander gebracht werden. Sogar ausgereifte Projekte wie Eclipse bleiben bei der .sh, .bat Option.

    
whatnick 20.01.2010 09:04
quelle

Tags und Links