Domanda

Per quanto mi sforzassi, non posso ottenere un file JNLP per l'esecuzione in locale (tramite un doppio clic). Sembra essere un problema di individuazione di un file jar, anche quando ho specificarlo relativo al file JNLP. Ottengo il seguente errore:

  

Il campo href ha un invalido   Valore: helloworld.jar

Questo accade anche quando il file JNLP si trova nella stessa cartella helloworld.jar. Ho fatto ricerche e questo è un problema costante soprattutto per le persone che vogliono un pacchetto di un'applicazione su un CD e utilizzare JNLP. L'unica "soluzione" fornito da Sun è la possibilità di specificare il codice di base tramite linea di comando, ma che in realtà non aiuta molto. Non capisco perché non assumono o consentire il codebase di essere "" o "file: //". - Ho provato questo tipo di cose nel parametro codebase del tag jnlp (all'interno del file) e niente ha funzionato

.

È estremamente conveniente per me di utilizzare un file JNLP perché non ho bisogno di preoccuparsi di rilevamento della piattaforma, librerie native, o anche i principali file jar JOGL; Ho semplicemente includere questa linea e tutto è fatto per me:

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

Spero di trovare qualcosa che può fare lo stesso genere di cose. In caso contrario, posso manualmente (o con Ant) afferrare i file jar JOGL, non è un grosso problema; solo una di quelle cose che JNLP fa per me e sono davvero intenzione di perdere.


Qual è la migliore alternativa per i file JNLP, per me di utilizzare a livello locale (vale a dire fare doppio clic per eseguire)? C'è qualcosa di così elegante o ho solo bisogno di scrivere uno script di shell per Linux, un file batch per Windows, e hanno Formica rilevare e scaricare i barattoli JOGL appropriati?

È stato utile?

Soluzione

Ho usato un file .jnlp come questo per lanciare il software Java Web Start localmente

  1. specificare il codice di base in questo modo: <jnlp spec="1.0+" codebase="file://localhost/X:/path/to/jnlp/" href="software.jnlp">

  2. risorse lista con i relativi percorsi: <resources> <jar href="lib/software.jar" main="true" /> <jar href="lib/softwareLibrary.jar" main="true" /> ... </resources>

  3. e, infine, dire Web Start dove può trovare il punto di ingresso del software all'interno del vaso segnato con main="true": <application-desc main-class="com.example.Main" />

L'unica cosa che devi cambiare durante la distribuzione in remoto è il parametro codebase.

Altri suggerimenti

È sufficiente rimuovere il codebase attributi e href da tag jnlp.

<jnlp spec="1.0+">

Questo è supportato dal Java 1.6u18.

Il sistema è stato migliorato JNLP con Java 6 update 10 (un po 'indietro), ma è ancora abbastanza difficile debug (abilitazione traccia completa nella console Java, e passo il codice javaws sorgente.

Nella tua situazione vorrei andare il miglio supplementare e farlo funzionare. Forse si dovrebbero fornire un JNLP di file completo che mostra il problema?

Con un manifesto per il vostro vaso. Ci si può definire la classe principale per avviare e le librerie necessarie. Vedere gli argomenti principali di classe e Classe-path nella specifica manifesto.

JNLP è stato progettato per il lancio della rete (in particolare http (s)) e senza una rete l'implementazione Java deve avere davvero confuso. Anche i progetti maturi come bastone eclissi con l'.sh, opzione di .bat.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top