Question

Essayez comme je pourrais, je ne peux pas obtenir un fichier JNLP pour exécuter localement (via un double-clic). Il semble être un problème de localisation d'un fichier jar, même quand je le précise par rapport au fichier jnlp. Je reçois l'erreur suivante:

  

Le champ href a une invalide   valeur: HelloWorld.jar

Cela se produit même lorsque le fichier JNLP est dans le même dossier que HelloWorld.jar. Je l'ai fait des recherches et c'est un problème constant surtout pour les personnes qui veulent emballer une application sur un CD et utiliser JNLP. La « solution » que Sun fourni est la possibilité de spécifier la base de code via la ligne de commande, mais cela ne vous aide pas vraiment beaucoup. Je ne comprends pas pourquoi ils ne prennent pas ou permettent d'être la base de code « » ou "file: //". - J'ai essayé ce genre de choses dans le paramètre codebase de la balise jnlp (dans le fichier) et rien ne fonctionnait

.

Il est très pratique pour moi d'utiliser un fichier JNLP parce que je ne ai pas besoin de vous soucier de la détection de la plate-forme, les bibliothèques natives, ou même les principaux fichiers jar JOGL; Je vous suffit d'inclure cette ligne et tout est fait pour moi:

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

J'espère trouver quelque chose qui peut faire le même genre de chose. Sinon, je peux manuellement (ou avec Ant) saisir les fichiers jar JOGL, ce n'est pas une grosse affaire; juste une de ces choses qui JNLP fait pour moi et je vais vraiment manquer.


Quelle est la meilleure alternative aux fichiers JNLP, pour moi d'utiliser (à savoir un double-clic pour exécuter) au niveau local? Y at-il quoi que ce soit si élégant ou dois-je juste besoin d'écrire un script shell pour Linux, un fichier batch pour Windows, et ont Ant détecter et télécharger les pots JOGL appropriés?

Était-ce utile?

La solution

Je l'ai utilisé un fichier .jnlp comme celui-ci pour lancer le logiciel Java Web Start localement

  1. préciser la base de code comme ceci: <jnlp spec="1.0+" codebase="file://localhost/X:/path/to/jnlp/" href="software.jnlp">

  2. ressources liste avec des chemins relatifs: <resources> <jar href="lib/software.jar" main="true" /> <jar href="lib/softwareLibrary.jar" main="true" /> ... </resources>

  3. et enfin dire Web Start où il peut trouver le point d'entrée du logiciel à l'intérieur du bocal marqué avec main="true": <application-desc main-class="com.example.Main" />

La seule chose que vous devez changer lors du déploiement à distance est le paramètre codebase.

Autres conseils

Il suffit de supprimer les attributs codebase et href de tag jnlp.

<jnlp spec="1.0+">

est prise en charge depuis java 1.6u18.

Le système JNLP a été amélioré avec Java 6 update 10 (un certain temps), mais il est encore assez difficile à déboguer (permettant le traçage complet dans la console Java, et pas à pas dans le code source javaws.

Dans votre situation, je voudrais aller le mile supplémentaire et faire fonctionner. Peut-être vous fournir un fichier JNLP complet montrant le problème?

Utilisez un manifeste pour votre pot. Là, vous pouvez définir la classe principale pour démarrer et les bibliothèques nécessaires. Par la classe et des arguments-chemin classe dans la spécification manifeste.

JNLP est conçu pour le lancement du réseau (en particulier http (s)) et sans réseau l'implémentation Java doit être vraiment confus. Même les projets matures comme bâton éclipse avec l'.sh, l'option .bat.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top