Précédent   Forum du club des développeurs et IT Pro > Java > Développement Web en Java > JWS
JWS Forum d'entraide sur la configuration et le déploiement d'applications avec Java Web Start
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 18/02/2011, 15h59   #1
Djul_
Invité de passage
 
Inscription : février 2011
Messages : 3
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 3
Points : 1
Points : 1
Par défaut Mise à jour auto de fichiers externes via JWS

Bonjour à toutes les pointures en Java ! Je demande votre aide pour la mise en place d'un système de mises à jour pour un client Java. Après quelques recherches je suis tombé sur le système Java Web Start, effectivement après suivi des tutoriels et des tests ça répondrait aux spécifications, le problème c'est que l'application n'a pas été conçue pour être déployée par JWS ni même par un JAR mais via un installeur setup.exe.

L'application peut s'exécuter sous la forme d'une archive JAR, mais le JAR n'est pas autonome. Il y a énormément de fichiers externes : des images pour la GUI, des fichiers de conf, de traduction... qui doivent être aussi mis à jour s'il y a changement. Or si j'ai bien lu les spécifications de JWS tout les éléments à déployer/mettre à jour doivent être sous la forme d'archives JAR.

Il est hors de question (et beaucoup trop long) de modifier l'application à la base, donc je recherche plusieurs solutions :

- Utiliser des méthodes DownloadService pour mettre à jour les ressources au démarrage de l'application (mais là je sèche)
- Avoir un setup qui déploie les fichiers locaux non nécessaires à mettre à jour, puis lance un JNLP qui installerait l'application (les classes), les libs ainsi que tous les fichiers sujets aux mises à jour automatiques (encore faut-il que j'arrive a mettre ça dans des JAR).

Je précise que le déploiement via JWS n'est pas obligatoire, uniquement la mise à jour, même si ça serait préférable d'avoir les deux.

Donc question : est-il possible de mettre "n'importe quoi" dans un JAR et de mettre à jour ce n'importe quoi via Java Web Start, de façon incrémentale ?
Si non, de quelles solutions dispose-je ?
Djul_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2011, 16h50   #2
Djul_
Invité de passage
 
Inscription : février 2011
Messages : 3
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 3
Points : 1
Points : 1
J'ai réussi sans trop de problème à insérer les fichiers que je voulais dans les Jar et à automatiser toute cette exportation grâce à Eclipse et aux .jardesc, mais l'application ne peut s'exécuter qu'avec certains fichiers présents dans le répertoire d'installation (fichiers de conf...). Je ne peux pas mettre ces fichiers dans des Jar car ils doivent êtres accessibles et modifiables depuis le disque dur, alors que Java Web Start les stockerais dans le cache et les rendrais illisible.

Mon soucis est donc de permettre à l'application JWS de se lancer avec un paramètre permettant d'importer/de mettre en relation les fichiers "locaux" et l'application. Un genre de "paramètre de répertoire d'exécution Java". Cela existe t-il ?

Pour illustrer, l'exécution manuelle des Jar sous Linux échoue, alors qu'en lançant le jar avec la commande java -jar test.jar (en plaçant tout dans le répertoire local) fonctionne : le jar est lancé par défaut avec les paramètres de répertoire de la JVM, et n'est plus en relation avec les fichiers nécessaires.
Djul_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2011, 22h37   #3
WX500
Invité de passage
 
Inscription : mars 2011
Messages : 9
Détails du profil
Informations professionnelles :
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mars 2011
Messages : 9
Points : 2
Points : 2
Bonjour , je relance le topic , est-ce que quelqu'un pourrait nous aider merci
WX500 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/03/2011, 00h20   #4
tchize_
Expert Confirmé Sénior
 
Avatar de tchize_
 
Homme
Responsable de service informatique
Inscription : avril 2007
Messages : 18 280
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : Belgique

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Service public

Informations forums :
Inscription : avril 2007
Messages : 18 280
Points : 32 756
Points : 32 756
Envoyer un message via MSN à tchize_ Envoyer un message via Skype™ à tchize_
Citation:
Envoyé par Djul_ Voir le message
L'application peut s'exécuter sous la forme d'une archive JAR, mais le JAR n'est pas autonome. Il y a énormément de fichiers externes : des images pour la GUI, des fichiers de conf, de traduction... qui doivent être aussi mis à jour s'il y a changement.
java webstart ou pas, c'est un très mauvaise habitude de les garder en dehors du jar. On met toujours les images, les ressources bundle (pour les traduction) et la configuration par défaut dans le jar. Après, la configuration spécifique de l'utilisateur (parce que ca existe souvent quand meme) et les trucs comme "les derniers fichiers ouverts" etc, on a plusieurs options.

Soit on stocke dans un fichier à part (qu'on stockera par exemple dans la $HOME de l'utilisateur), soit en utiliser l'api Preferences, soit, si on est en javawebstart, on peux aussi utiliser l'api "PersistenceService" pour éviter d'avoir à signer les jars.
Citation:
Il est hors de question (et beaucoup trop long) de modifier l'application à la base, donc je recherche plusieurs solutions :
Alors vous l'avez dans le baba. Vous êtes occupé de dire "je cherche une solution pour exécuter avec java webstart une application qui refuse d'être compatible". Rendez la compatible, retirez ou corriger les bourdes qui sont dedans.
Citation:
- Utiliser des méthodes DownloadService pour mettre à jour les ressources au démarrage de l'application (mais là je sèche)
Ce n'est pas destiné à ça
Citation:
- Avoir un setup qui déploie les fichiers locaux non nécessaires à mettre à jour,
Faut savoir, vous voulez les mettre à jour ou pas? Si pas, suffit dans le première ligne de votre main(), de copier depuis l'intérieur du jar vers un dossier quelconque les ressources dont vous avez besoin
Citation:
puis lance un JNLP qui installerait l'application (les classes),
Retirez vous de la tete cette notion d'installation, on installe pas en jnlp.

Citation:
Je précise que le déploiement via JWS n'est pas obligatoire, uniquement la mise à jour, même si ça serait préférable d'avoir les deux.
La mise à jour, c'est le déploiement :/

Citation:
Donc question : est-il possible de mettre "n'importe quoi" dans un JAR et de mettre à jour ce n'importe quoi via Java Web Start, de façon incrémentale ?
Si non, de quelles solutions dispose-je ?
Non, si c'est du n'importe quoi qui fait du n'importe quoi, écrivez un main qui fait le "nimporte quoi téléchargement" puis qui lancer (via java -jar) le n'importe quoi en question.
__________________
⥀⥁ Чиз faq java, cours java, javadoc. Pensez à et
Laisse entrer le jour après une nuit sombre. Si tu es toujours là, tu n'es pas faite pour mourir.
tchize_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/03/2011, 12h34   #5
WX500
Invité de passage
 
Inscription : mars 2011
Messages : 9
Détails du profil
Informations professionnelles :
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mars 2011
Messages : 9
Points : 2
Points : 2
Merci de votre réponse , mais est-ce qu'on peut intégrer également la base de donnée locale de l'application client dans le fichier jar?
WX500 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/03/2011, 12h51   #6
tchize_
Expert Confirmé Sénior
 
Avatar de tchize_
 
Homme
Responsable de service informatique
Inscription : avril 2007
Messages : 18 280
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : Belgique

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Service public

Informations forums :
Inscription : avril 2007
Messages : 18 280
Points : 32 756
Points : 32 756
Envoyer un message via MSN à tchize_ Envoyer un message via Skype™ à tchize_
Tout ce qui est donnée modifiée par le client à perserver, voir mon message plus haut, le plus simple est de les stocker dans la Home directory de l'utilisateur. Pour ce faire:


Code :
1
2
File home= new File(System.getProperty("user.home"));
File storageFolder = new File(home,"MonApplication");
__________________
⥀⥁ Чиз faq java, cours java, javadoc. Pensez à et
Laisse entrer le jour après une nuit sombre. Si tu es toujours là, tu n'es pas faite pour mourir.
tchize_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 06h41.


 
 
 
 
Partenaires

Hébergement Web