Essayez, c'est-à-dire que je ne peux pas obtenir de fichier JNLP pour exécuter localement (via un double-clic). Il semble être un problème de localisation d'un fichier JAR, même lorsque je le spécifie relatif au fichier JNLP. Je reçois l'erreur suivante:
Le champ
HREF a un invalide Valeur: helloworld.jar p> BlockQuote> Cela se produit même lorsque le fichier JNLP est dans le même dossier que helloworld.jar. J'ai effectué des recherches et c'est un problème cohérent, en particulier pour les personnes qui souhaitent emballer une application sur un CD et utilisent JNLP. La seule "solution" fournie au soleil est la possibilité de spécifier le codeBase via une ligne de commande, mais cela n'en aide pas vraiment beaucoup. Je ne comprends pas pourquoi ils ne supposent pas ou ne permettent pas de "". ou "fichier: //." - J'ai essayé ces types de choses dans le paramètre de codeBase de la balise JNLP (dans le fichier) et rien n'a fonctionné. P>
Il est extrêmement pratique pour moi d'utiliser un fichier JnLP parce que je ne le fais pas Besoin de s'inquiéter de la détection de la plate-forme, des bibliothèques autochtones ou même des principaux fichiers JOGL JAR; Je comprends simplement cette ligne et tout est fait pour moi: p>
xxx pré> J'espère trouver quelque chose qui peut faire le même genre de chose. Sinon, je peux manuellement (ou avec une fourmi) saisir les fichiers JOGL JAR, ce n'est pas une grosse affaire; juste une de ces choses que Jnlp fait pour moi et que je vais vraiment manquer. p>
Quelle est la meilleure alternative aux fichiers JNLP, pour que je puisse utiliser localement (c'est-à-dire double- Cliquez pour exécuter)? Y a-t-il quelque chose d'aussi élégant ou ai-je juste besoin d'écrire un script shell pour Linux, un fichier de commandes pour Windows et de détecter des fourmis et de télécharger les jarball jogl appropriés? Strong> p> P>
5 Réponses :
Utilisez un manifeste pour votre pot. Là, vous pouvez définir la classe principale à démarrer et les bibliothèques requises. Voir les arguments de la classe principale et de la classe de classe dans la spécification manifeste. P>
Ce point est de me permettre de simplement cliquer sur le fichier JAR pour l'exécuter, correct?
Je ne crois pas que Manifeste.MF permet de spécifier l'emplacement des bibliothèques autochtones.
Je n'ai pas remarqué que l'utilisation de bibliothèques indigènes était nécessaire, mais de toute façon, avec l'attribut Manifest, cela devrait être gérable par fourmi pour fournir des dépendances / packages spécifiques à la plate-forme.
Le système JNLP a été amélioré avec Java 6 Mise à jour 10 (temps de retour), mais il est toujours tout à fait difficile de déboguer (activant le traçage complet dans la console Java et en progressant sur le code source Javaws. P>
Dans votre situation, je voudrais aller un effort supplémentaire et le faire fonctionner. Peut-être fourniriez-vous un fichier JNLP complet indiquant le problème? P>
JNLP est conçu pour le lancement de réseau (spécifiquement http (s)) et sans réseau, la mise en œuvre Java doit être vraiment confuse. Même des projets matures comme Eclipse Stick avec l'option .sh, .bat. P>
Pas nécessairement ... NetBeans a une option de lancement JNLP locale hors de la boîte. De plus, si vous regardez le commentaire de @ Shrrike, vous pouvez voir que le département local n'est pas si difficile.
J'ai utilisé un fichier .jnlp comme celui-ci pour lancer le logiciel Java Web Start localement P>
Spécifiez la base de code comme:
Liste des ressources avec des chemins relatifs: et enfin dire Web Démarrer où il peut trouver le point de saisie du logiciel à l'intérieur du pot marqué avec La seule chose que vous devez modifier lors du déploiement à distance est le paramètre de codeBase. P>
Main = "vrai" code>:
Et cela ne nécessite pas une sorte de serveur Web ou de serveur de fichiers exécuté sur localhost pour analyser ce chemin?
Non, mais la partie localehost est toujours requise. Ne fonctionne pas sans cela, fonctionne si vous le mettez en. Je me suis pris une demi-journée pour comprendre :-)
C'est vraiment cool. Je souhaite que vous soyez là-bas en janvier lorsque je jouais avec cela. Comme il s'agit de la réponse que je cherchais, je commutais la réponse acceptée à vous. :)
De plus, vous pouvez lancer localement en laissant l'attribut codebase code>. Il est maintenant facultatif: télécharger.oracle.com/ Javase / 6 / Documents / Technotes / Guides / Javaws / ...
Il est temps de remplacer tous mes scripts de jeux de lancement avec JNLP. Tant de Néater avec détection de plate-forme et tout.
Pour moi, cela n'a fonctionné que lorsque j'ai changé la base de code sur: Fichier: /// x: / chemin / à / jnlp / (donc trois barres obliques, puis la lettre de lecteur)
Comme @adriagankoster, cela ne fonctionnait que lorsque j'ai utilisé le fichier: /// x: / bla / bla / bla, sinon cela me donnait une erreur sur une "autorité dans l'Uri".
supprimer juste les attributs codebase code> et
href code> à partir de
jnlp code> tag.
Si quelqu'un d'autre, il y a une meilleure réponse que ceux ci-dessous, veuillez parler! J'aimerais toujours entendre s'il est possible d'exécuter des fichiers JNLP à partir du système de fichiers local. Cependant, après quelques recherches, je l'ai décidé d'être impossible et j'ai depuis disparu avec ma propre suggestion; Une paire de scripts (run.bat and run.sh) et mon script d'ant utilise des balises de condition et des téléchargements et décompressez le jogl jogl correct. Je soutiendrai une réponse contenant le code des fourmis sous peu.