2010-09-15 8 views
0

J'ai une seule application que je déploie via Java Web Start. J'ai plusieurs fichiers jnlp différents pour différents scénarios de lancement. J'utilise DownloadService2 pour vérifier les mises à jour périodiquement. Lorsqu'une mise à jour est disponible, j'invite l'utilisateur. Si elles choisissent de mettre à jour, je lance une nouvelle instance de javaws using Runtime.getRuntime().exec(), en passant dans l'URL complète jnlp, puis je System.exit (0). Effectivement, cela lance un cycle de mise à jour/redémarrage. Le problème est, puisque je pourrais avoir commencé à partir d'un de plusieurs fichiers jnlp, je ne peux pas simplement coder en dur l'URL. Je sais que je peux obtenir la partie hôte: port de l'URL de BasicService.getCodeBase(), mais est-il un moyen d'obtenir la partie de fichier de l'URL? Actuellement, je suis l'ajout d'un « jnlp » argument à la même demande-desc à ce qui suit pour que je puisse récupérer de ce args:Comment obtenir l'attribut jnlp href à l'exécution dans l'application Java Web Start (similaire à BasicService.getCodeBase())?

<application-desc main-class="my.main.class"> 
<argument>jnlp=myjnlp.jnlp</argument> 
<application-desc/> 

Je pense que cela va fonctionner, mais je me demande si je fais ce plus difficile que nécessaire. Merci.

Répondre

0

J'ai travaillé autour de ce problème en utilisant l'approche décrite dans ma question. Il ne semble pas y avoir de meilleur moyen.

0

Peut-être qu'il serait préférable de fournir cette fonctionnalité en utilisant le DownloadService.

+0

J'étais conscient de la classe DownloadService, mais je ne suis pas sûr de savoir comment l'utiliser pour obtenir le nom du fichier jnlp pour l'application en cours d'exécution. Peux-tu élaborer? – ajh158

+0

Mes excuses. J'ai mal lu la question et la DS ne résoudra pas le problème énoncé. :( –

+0

Pas de problème, merci d'avoir répondu. – ajh158